Page MenuHomeFreeBSD
Feed Advanced Search

Sep 23 2019

kib added a comment to D21762: Add a sleep lock to the NFS node to protect n_size.

First, I am not sure that this change is enough. Ideally, the consistency would be kept between the buffer cache state and vnode object as well, so e.g. it is impossible to observe a buffer with b_lblkno outside of the v_object size. This is true for other filesystems but not for NFS.

Sep 23 2019, 1:44 PM
kib committed rS352620: Fix destruction of the robust mutexes..
Fix destruction of the robust mutexes.
Sep 23 2019, 1:24 PM
kib committed rS352616: MFC r352384:.
MFC r352384:
Sep 23 2019, 7:23 AM
kib committed rS352615: MFC r352384:.
MFC r352384:
Sep 23 2019, 7:22 AM

Sep 22 2019

kib accepted D21755: Use elf_relocaddr() when handling R_X86_64_RELATIVE relocations..
Sep 22 2019, 9:07 PM
kib added inline comments to D21758: Introduce pmap_change_prot()..
Sep 22 2019, 8:23 PM
kib accepted D21759: Set NX on direct map PML4Es..
Sep 22 2019, 8:21 PM
kib added a comment to D21755: Use elf_relocaddr() when handling R_X86_64_RELATIVE relocations..

How hard would be assert that lf is a dso, as opposed to an object file ?

Sep 22 2019, 8:20 PM
kib accepted D21754: Set NX in mappings created by pmap_kenter() and pmap_kenter_attr()..

I think the only interesting case is pmap_mapbios(), but it should be fine. Anyway, we will see.

Sep 22 2019, 8:16 PM
kib committed rS352609: i386: reduce differences in source between PAE and non-PAE pmaps ....
i386: reduce differences in source between PAE and non-PAE pmaps ...
Sep 22 2019, 7:59 PM
kib closed D21757: i386: reduce differences in source between PAE and non-PAE pmaps.
Sep 22 2019, 7:59 PM
kib created D21757: i386: reduce differences in source between PAE and non-PAE pmaps.
Sep 22 2019, 7:41 PM
kib updated the diff for D21566: Improve MD page fault handlers..

Latest round of fixes.

Sep 22 2019, 7:30 PM
kib added inline comments to D21566: Improve MD page fault handlers..
Sep 22 2019, 7:30 PM
kib committed rS352607: i386: implement sysctl vm.pmap.kernel_maps..
i386: implement sysctl vm.pmap.kernel_maps.
Sep 22 2019, 7:23 PM
kib closed D21739: i386: implement sysctl vm.pmap.kernel_maps..
Sep 22 2019, 7:23 PM
kib committed rS352606: amd64: minor tweaks to pat decoding in sysctl vm.pmap.kernel_maps..
amd64: minor tweaks to pat decoding in sysctl vm.pmap.kernel_maps.
Sep 22 2019, 7:20 PM
kib closed D21738: amd64: minor tweaks to pat decoding in sysctl vm.pmap.kernel_maps.
Sep 22 2019, 7:20 PM
kib added inline comments to D21739: i386: implement sysctl vm.pmap.kernel_maps..
Sep 22 2019, 7:04 PM
kib added inline comments to D21739: i386: implement sysctl vm.pmap.kernel_maps..
Sep 22 2019, 4:44 PM
kib added inline comments to D21598: Use atomics for object reference count so that we can use the shared lock to protect it..
Sep 22 2019, 2:35 PM
kib accepted D21598: Use atomics for object reference count so that we can use the shared lock to protect it..
Sep 22 2019, 1:42 PM
kib accepted D21747: lockprof: move per-cpu data to dpcpu.
Sep 22 2019, 1:38 PM
kib added a comment to D21740: lockprof: fix hangs under load when changing the state or dumping stats.

Hm, having something like quiesce is useful. I understand your observation about the idle threads. But then we should create a highest-priority interrupt thread that gets bound to all cpus sequentially and provide the service.

Sep 22 2019, 1:37 PM
kib added a comment to D21596: (vm object 6) Convert pmap_is_modified, pmap_remove_write, and pmap_clear_modify to expecting busy to be held by the caller now that all callers hold it..

Is there any use of PGA_WRITEABLE flag left after the patch ? pmap_page_is_write_mapped() takes the pv lock, while PGA_WRITEABLE check is essentially free.

Sep 22 2019, 1:25 PM
kib accepted D21595: (vm object 5) Move PGA_NOSYNC to VPA_NOSYNC so that the object lock is not required..
Sep 22 2019, 1:21 PM
kib added a comment to D21595: (vm object 5) Move PGA_NOSYNC to VPA_NOSYNC so that the object lock is not required..

We have MAP_NOSYNC flag for mmap(2). Suppose we have one mapping with the flag set, and other with the flag clear. Then write fault for the page might come from either mappings, and we either want or not want to set VPO_NOSYNC depending from which mapping the write fault is coming. More, if the VPO_NOSYNC page is re-dirtied from non-NOSYNC mapping, we want to remove VPO_NOSYNC.

Sep 22 2019, 1:20 PM
kib added a comment to D21594: (vm object 4) Wrap valid accesses in inlines. Add missing busy acquires to protect valid..

What do you mean by a note that pageout clears valid state of the page ? I thought that pageout laundries the page, and a clean page might be freed for reuse. In other words, valid bits can be only trimmed by truncation either of the vnode or swap backing OBJ_NOSPLIT object.

Sep 22 2019, 1:05 PM

Sep 21 2019

kib committed rS352585: kern.elf{32,64}.pie_base sysctl: enforce page alignment..
kern.elf{32,64}.pie_base sysctl: enforce page alignment.
Sep 21 2019, 8:03 PM
kib accepted D21458: Add mount options to prevent covering.
Sep 21 2019, 6:53 PM
kib created D21739: i386: implement sysctl vm.pmap.kernel_maps..
Sep 21 2019, 6:49 PM
kib created D21738: amd64: minor tweaks to pat decoding in sysctl vm.pmap.kernel_maps.
Sep 21 2019, 6:47 PM
kib added a comment to D21458: Add mount options to prevent covering.
In D21458#474367, @sef wrote:

Any further comments on this? I'd gotten an OOB message from Josh about this. If not, I'll make sure it's still functional and plan on committing this weekend or Monday.

Sep 21 2019, 6:37 PM
kib committed rS352582: Make non-ASLR pie base tunable..
Make non-ASLR pie base tunable.
Sep 21 2019, 6:00 PM
kib committed rS352581: amd64 pmap: Fix formats for 64bit addresses in ddb and sysctl output..
amd64 pmap: Fix formats for 64bit addresses in ddb and sysctl output.
Sep 21 2019, 5:59 PM
kib closed D21737: amd64 pmap: Fix formats for 64bit addresses in ddb and sysctl output..
Sep 21 2019, 5:59 PM
kib created D21737: amd64 pmap: Fix formats for 64bit addresses in ddb and sysctl output..
Sep 21 2019, 5:05 PM
kib added a comment to D21566: Improve MD page fault handlers..

Any further comments on the change ?

Sep 21 2019, 3:31 PM

Sep 20 2019

kib accepted D21731: msdosfs: do not deget unlinked denodes.
Sep 20 2019, 8:02 PM
kib committed rS352549: MFC r352303:.
MFC r352303:
Sep 20 2019, 7:24 AM

Sep 19 2019

kib added a comment to D21592: (vm object 3) Add a shared object busy synchronization mechanism that blocks new page busy acquires while held..
In D21592#473571, @jeff wrote:

I think I've brought this up before, but I would like it if the VM had a generic per-2MB page structure. We already have several in vm_reserv and the pmap, and IMO it would be a good place to maintain a "compound" busy state, rather than in the object. I worry that a mechanism to block the busying of all pages in an object will inhibit concurrency and lead to transient latency spikes. I don't object to the current approach though.

Right now the object lock is the mechanism that blocks busying of all pages and creates transient latency spikes. This at least narrows it a level and allows other object operations to proceed. If you had a per-superpage object you would have to be able to very quickly look it up and acquire in tryxbusy/sbusy.

Ultimately I would like to see a generic mechanism that can treat pages as groups with a single set of state. A variable page size.

Sep 19 2019, 1:55 PM
kib added inline comments to D21592: (vm object 3) Add a shared object busy synchronization mechanism that blocks new page busy acquires while held..
Sep 19 2019, 1:47 PM
kib accepted D21706: libsysdecode: decode PROT_MAX allocations.
Sep 19 2019, 1:05 PM
kib accepted D21703: o Unify all <machine>/resource.h, unhide PCI_RES_BUS, add CLK and PWR..
Sep 19 2019, 7:09 AM
kib added a reviewer for D21703: o Unify all <machine>/resource.h, unhide PCI_RES_BUS, add CLK and PWR.: jhb.
Sep 19 2019, 7:08 AM
kib added a comment to D21703: o Unify all <machine>/resource.h, unhide PCI_RES_BUS, add CLK and PWR..

This looks fine to me, but I have no idea why John put PCI_RES_BUS under #ifdef NEW_PCIB instead of defining it always. Also, would it be reasonable to do a separate pass to rename PCI_RES_BUS to SYS_RES_PCIBUS ?

Sep 19 2019, 7:08 AM
kib added inline comments to D21706: libsysdecode: decode PROT_MAX allocations.
Sep 19 2019, 6:47 AM
kib added a comment to D21703: o Unify all <machine>/resource.h, unhide PCI_RES_BUS, add CLK and PWR..

I think it would be fair to remove copyrights from machine/resource.h, instead put the trivial header files into public domain or assign to yourself.

Sep 19 2019, 6:42 AM

Sep 18 2019

kib committed rS352494: Release dougm..
Release dougm.
Sep 18 2019, 7:54 PM
kib added inline comments to D21706: libsysdecode: decode PROT_MAX allocations.
Sep 18 2019, 7:40 PM
kib committed rS352488: truss: decode sysctl names..
truss: decode sysctl names.
Sep 18 2019, 4:15 PM
kib closed D21688: make truss decode sysctl names.
Sep 18 2019, 4:15 PM
kib closed D21693: sysctl: use names instead of magic numbers.
Sep 18 2019, 4:13 PM
kib committed rS352486: sysctl: use names instead of magic numbers..
sysctl: use names instead of magic numbers.
Sep 18 2019, 4:13 PM
kib accepted D21688: make truss decode sysctl names.
Sep 18 2019, 2:06 PM
kib added inline comments to D21688: make truss decode sysctl names.
Sep 18 2019, 10:22 AM
kib added inline comments to D21688: make truss decode sysctl names.
Sep 18 2019, 6:37 AM
kib accepted D21693: sysctl: use names instead of magic numbers.
Sep 18 2019, 6:33 AM
kib added inline comments to D21592: (vm object 3) Add a shared object busy synchronization mechanism that blocks new page busy acquires while held..
Sep 18 2019, 6:24 AM

Sep 17 2019

kib accepted D21667: vfs: fix incorrect hold in vtryrecycle.
Sep 17 2019, 8:19 PM
kib accepted D21393: [3/3] Add linux-compatible memfd_create.
Sep 17 2019, 8:15 PM
kib committed rS352459: ifconfig: add report of the string from SIOCGIFDOWNREASON..
ifconfig: add report of the string from SIOCGIFDOWNREASON.
Sep 17 2019, 6:51 PM
kib committed rS352458: Add SIOCGIFDOWNREASON..
Add SIOCGIFDOWNREASON.
Sep 17 2019, 6:49 PM
kib closed D21527: Add SIOCGIFDOWNREASON.
Sep 17 2019, 6:49 PM
kib committed rS352457: Further refine r352393, only call vnode_pager_setsize() outside the.
Further refine r352393, only call vnode_pager_setsize() outside the
Sep 17 2019, 6:41 PM
kib closed D21632: realloc(x, 0) should not return NULL.
Sep 17 2019, 6:36 PM
kib committed rS352456: realloc(x, 0) should not return NULL..
realloc(x, 0) should not return NULL.
Sep 17 2019, 6:36 PM
kib committed rS352455: Return EISDIR when directory is opened with O_CREAT without O_DIRECTORY..
Return EISDIR when directory is opened with O_CREAT without O_DIRECTORY.
Sep 17 2019, 6:32 PM
kib closed D21634: Return EISDIR when directory is opened with O_CREAT without O_DIRECTORY..
Sep 17 2019, 6:32 PM
kib added a comment to D21646: vfs: add root vnode caching for mount points.

I think it is fine.

Sep 17 2019, 2:48 PM
kib added inline comments to D21688: make truss decode sysctl names.
Sep 17 2019, 2:37 PM
kib added a comment to D21667: vfs: fix incorrect hold in vtryrecycle.
In D21667#472964, @mjg wrote:

I think it's cleaner to handle this separately mostly because this function cannot do any clean up so it behaves quite differently compared to vn_start_write. If you insist I can fold it in.

Sep 17 2019, 2:27 PM
kib accepted D21206: libc: add fdwalk.
Sep 17 2019, 2:18 PM
kib added inline comments to D21206: libc: add fdwalk.
Sep 17 2019, 12:32 PM
kib added a comment to D21667: vfs: fix incorrect hold in vtryrecycle.

Why do you need vn_start_write_nb() when vn_start_write() already takes the flag argument ?

Sep 17 2019, 8:54 AM
kib added inline comments to D21393: [3/3] Add linux-compatible memfd_create.
Sep 17 2019, 8:44 AM
kib accepted D21624: Add some tests for page fault signals and codes.
Sep 17 2019, 7:43 AM

Sep 16 2019

kib added a comment to D21678: Use AMD CLZERO instruction for pagezero..
In D21678#472744, @mjg wrote:
Sep 16 2019, 6:57 PM
kib created D21678: Use AMD CLZERO instruction for pagezero..
Sep 16 2019, 6:14 PM
kib accepted D21637: vfs: convert struct mount counters to per-cpu.
Sep 16 2019, 6:10 PM
kib added a comment to D21642: Remove more unused identifiers from r351198..
In D21642#472503, @alc wrote:

Yes, I put the const in the wrong place. So, code within vm_page.c will avoid the dereference, but code outside vm_page.c that uses the declaration from vm_page.h will still perform the dereference. Declaring vm_page_array as an array would deal with both cases.

I'm still missing something. vm_page_array cannot be defined in vm_page.h, and if it is not defined there I do not see how the compiler can elide a memory dereference.

It cannot be defined, but can be declared, same as now. Or I do not understand what you are trying to say.

Sep 16 2019, 4:01 PM
kib committed rS352393: nfscl_loadattrcache: fix rest of the cases to not call.
nfscl_loadattrcache: fix rest of the cases to not call
Sep 16 2019, 1:26 PM
kib added inline comments to D21637: vfs: convert struct mount counters to per-cpu.
Sep 16 2019, 8:29 AM
kib updated the summary of D21527: Add SIOCGIFDOWNREASON.
Sep 16 2019, 8:12 AM
kib updated the summary of D21527: Add SIOCGIFDOWNREASON.
Sep 16 2019, 8:12 AM
kib updated the summary of D21527: Add SIOCGIFDOWNREASON.
Sep 16 2019, 8:07 AM
kib added reviewers for D21527: Add SIOCGIFDOWNREASON: network, transport.
Sep 16 2019, 7:36 AM
kib accepted D21575: vfs: manage mnt_writeopcount with atomics.
Sep 16 2019, 7:29 AM
kib committed rS352384: Increase the size of the send and receive buffers for YP client rpc.
Increase the size of the send and receive buffers for YP client rpc
Sep 16 2019, 6:42 AM
kib closed D21586: Increase the size of the send and receive buffers for YP client rpc calls to max allowed UDP datagram size..
Sep 16 2019, 6:42 AM
kib committed rS352383: MFC r352059, r352060:.
MFC r352059, r352060:
Sep 16 2019, 6:24 AM
kib committed rS352382: MFC r352056:.
MFC r352056:
Sep 16 2019, 6:23 AM
kib committed rS352381: MFC r352058:.
MFC r352058:
Sep 16 2019, 6:22 AM
kib committed rS352380: MFC r352059, r352060:.
MFC r352059, r352060:
Sep 16 2019, 6:15 AM
kib committed rS352379: MFC r352056:.
MFC r352056:
Sep 16 2019, 6:13 AM
kib committed rS352378: MFC r352058:.
MFC r352058:
Sep 16 2019, 6:12 AM

Sep 15 2019

kib accepted D21392: [2/3] Add an initial seal argument to kern_shm_open() .
Sep 15 2019, 5:08 PM

Sep 14 2019

kib accepted D21575: vfs: manage mnt_writeopcount with atomics.
Sep 14 2019, 9:35 PM
kib accepted D21574: vfs: manage mnt_lockref with atomics.
Sep 14 2019, 9:29 PM
kib added a comment to D21574: vfs: manage mnt_lockref with atomics.

This is not yet updated to pcpu counters, right ?

Sep 14 2019, 8:58 PM