In D51254#1215182, @kib wrote:In D51254#1215055, @markj wrote:why the BMAP operation would take the blocksize as a parameter to begin with, is the block size not fixed by the client filesystem?
For instance, UFS has fragments, which already means that block size is varying.
Another case where varying block size would matter (in much more significant way than fragments) are extent-based fs. We do not have any right now, but would we have, the existing bmap interface fits.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Feed Advanced Search
Advanced Search
Advanced Search
Today
Today
In D51254#1215055, @markj wrote:why the BMAP operation would take the blocksize as a parameter to begin with, is the block size not fixed by the client filesystem?
Yesterday
Yesterday
knotes: kqueue: handle copy for trivial filters
kqueue.2: document KQUEUE_CPONFORK
kqueue: handle copy for netmap filters
kqueue: handle copy for vnode filters
kern_event.c: support copy for timer events
kqueuex(2): add KQUEUE_CPONFORK
kib committed rG25cecc4ba284: kern/kern_event.c: extract kqueue_acquire_ref() from kqueue_acquire() (authored by kib).
kern/kern_event.c: extract kqueue_acquire_ref() from kqueue_acquire()
kib committed rG78382caa3edb: kern/kern_event.c: extract kern_kqueue_alloc() from kern_kqueue() (authored by kib).
kern/kern_event.c: extract kern_kqueue_alloc() from kern_kqueue()
kib committed rG37ce6052f6ac: kern_descrip.c: add struct proc argument to fdcopy() (authored by kib).
kern_descrip.c: add struct proc argument to fdcopy()
kqueue_fo_release(): print filter with underflow
kib committed rG1265516c5c61: struct file: add DFLAG_FORK, indicate copying on fork (authored by kib).
struct file: add DFLAG_FORK, indicate copying on fork
Fri, Oct 17
Fri, Oct 17
kib committed rG3c052bec12fc: include/stdckdint.h: make the header compatible with C++ (authored by kib).
include/stdckdint.h: make the header compatible with C++
In D53091#1213715, @gallatin wrote:In D53091#1213605, @kib wrote:Sorry, I do not understand the change.
The compilation of both in_rss.c and rss_config.c is gated by the RSS option, and this seems to not change for the whole time these files existed.In other words, if the 'options RSS' is not included into the kernel config, would the driver even compile?
Sorry, I wish I was better at reviews of patch series. This is one of many patches, starting with https://reviews.freebsd.org/D53089 and ending with https://reviews.freebsd.org/D53104
The goal is to achieve consistent hashing for TCP ingress/egress by exposing the hashing parts of RSS to drivers, so that all NICs use the same hash key and algo.
There are a lot of unresolved reviewer's notes. Do you really need more reviewers, at least until all existing suggestions are handled?
knote_triv_copy
Set quantum to 1.
Allow M_NOWAIT
List flags for vmem_xalloc() in man page.
Mention thread-safety in man page.
Remove unused VMEM_TRYLOCK()
In D27220#1213773, @bnovkov wrote:One minor thing I've noticed is that we don't export M_NOWAIT.
I think it would be very useful to have a way of controlling whether we wait or exit on failure, but I'm not sure if accomplishing that is as straightforward as defining M_NOWAIT in sys/vmem.h.
Thu, Oct 16
Thu, Oct 16
nullfs: add nounixbypass mount option
kib committed rG24f4ec797e9b: mount_nullfs.8: document unixbypass and nounixbypass (authored by kib).
mount_nullfs.8: document unixbypass and nounixbypass
kib committed rGe9a48e988e2d: nullfs_mount: use symbols instead of string literals for cache mount options (authored by kib).
nullfs_mount: use symbols instead of string literals for cache mount options
kib committed rG5a0a2d269f37: nullfs: add a helper for testing if vnode belongs to a nullfs mount (authored by kib).
nullfs: add a helper for testing if vnode belongs to a nullfs mount
Wed, Oct 15
Wed, Oct 15
Merge two if's.
Sorry, I do not understand the change.
The compilation of both in_rss.c and rss_config.c is gated by the RSS option, and this seems to not change for the whole time these files existed.
Man page update: explain that knotes for closed fds are not copied.
In D52045#1213312, @markj wrote:This should really have some regression tests. Even some simple ones which exercise the f_copy routine for various filters, and verify that knotes for O_CLOFORK fds are handled properly, would be much better than nothing.
libuvmem(3)
In D27220#1213316, @markj wrote:In D27220#1213306, @kib wrote:In D27220#1213262, @markj wrote:Looks ok to me. Perhaps this should be a private library instead?
IMO it is generally useful API. Also, I do provide symbol versioning, which does not make sense for a private library: the intent is to keep stable interfaces.
Well, now the kernel's internal interface must be kept stable as well. I don't object, but I'm worried it'll be easy for someone modifying vmem to forget about this.
Makefile formatting
In D27220#1213262, @markj wrote:Looks ok to me. Perhaps this should be a private library instead?
Some editing to the comment.
So where are we WRT this change? If this not going to be finished soon, may be Mark' change should go in to be cherry-picked for 15.0.
Wrap the first stage of the fork pass into the original pass over source fd table.
Tue, Oct 14
Tue, Oct 14
In D27220#1212853, @bnovkov wrote:In D27220#1212532, @kib wrote:In D27220#1212528, @bnovkov wrote:Hi, is there a concrete reason why this revision never landed or has it just slipped through the cracks?
I would really like to use libuvmem for one of my ongoing bhyve projects and would like to see this land, let me know if there a way I could help with that.
The intent of the libuvmem port was to use vmem allocator for bhyve to handle physical address space. That stalled, and I do not see a reason to add unused library to base.
Is there a revision with the stalled patches somewhere? I'd be interested in taking a look.
Changes due to the latest comments.
VMEM_LIST_LOCK()
Mon, Oct 13
Mon, Oct 13
Use standard way to reference libc src dir.
Silence compiler warning in _bt_fill() about flags.
Remove undefined symbols from the version script. The library should be buildable, at least.
Rebase. Use FreeBSD 16.0 symbol version for the new lib.
In D27220#1212528, @bnovkov wrote:Hi, is there a concrete reason why this revision never landed or has it just slipped through the cracks?
I would really like to use libuvmem for one of my ongoing bhyve projects and would like to see this land, let me know if there a way I could help with that.
Man page editing
kib committed rG0c7c1c27ea9e: vm_fault_busy_sleep(): update comment after addition of allocflags arg (authored by kib).
vm_fault_busy_sleep(): update comment after addition of allocflags arg
vm_fault: assert that first_m is xbusy
kib committed rG94ea60483bcc: vm_fault: try to only share-busy page for soft faults (authored by kib).
vm_fault: try to only share-busy page for soft faults
vm_fault: add helper vm_fault_can_cow_rename()
vm_fault: add vm_fault_might_be_cow() helper
vm_fault: drop never-true busy_sleep test
kib committed rG4b938ed09069: vm_fault_busy_sleep(): pass explicit allocflags for vm_page_busy_sleep() (authored by kib).
vm_fault_busy_sleep(): pass explicit allocflags for vm_page_busy_sleep()
vm/vm_fault.c: cleanup includes
kib committed rG84b512720455: pdgetpid(2): switch back returning EBADF for non-procdesc fd (authored by kib).
pdgetpid(2): switch back returning EBADF for non-procdesc fd
kern: replace several EBADF with EINVAL
kern_exit.c: do not leak reaper bitmap busy bits
Sun, Oct 12
Sun, Oct 12
Single instruction to clear a register is basically free on modern architectures. All it does it marks the register as having zero (sometimes not writing actual zero) and eliminating dependencies on previous register value. On the other hand, adding more code means that we consume more space in the icache, there are more instructions to parse etc.
Sat, Oct 11
Sat, Oct 11
In D53026#1211786, @des wrote:
I intend to commit this early next week.
Bug fixes after Peter' testing.
kern_exit.c: do not leak reaper bitmap busy bits
kib committed rG6506630a28bc: vm_fault_busy_sleep(): update comment after addition of allocflags arg (authored by kib).
vm_fault_busy_sleep(): update comment after addition of allocflags arg
vm_fault: assert that first_m is xbusy
kib committed rG650a9a12c061: vm_fault: try to only share-busy page for soft faults (authored by kib).
vm_fault: try to only share-busy page for soft faults
vm_fault: add helper vm_fault_can_cow_rename()
vm_fault: add vm_fault_might_be_cow() helper
kib committed rG6bffdfe05b77: vm_fault_busy_sleep(): pass explicit allocflags for vm_page_busy_sleep() (authored by kib).
vm_fault_busy_sleep(): pass explicit allocflags for vm_page_busy_sleep()
vm/vm_fault.c: cleanup includes
kib committed rG07debe52b30a: pdgetpid(2): switch back returning EBADF for non-procdesc fd (authored by kib).
pdgetpid(2): switch back returning EBADF for non-procdesc fd
kern: replace several EBADF with EINVAL
Fri, Oct 10
Fri, Oct 10
You might hide the workaround under some sort of ifdef gcc. It would be tricky, though, since this needs to happen inside the macro.
Ask kargl@ for explicit feedback and approval of the patch.
Thu, Oct 9
Thu, Oct 9
kib committed rG033587a985a4: mount_nullfs.8: document unixbypass and nounixbypass (authored by kib).
mount_nullfs.8: document unixbypass and nounixbypass
nullfs: add nounixbypass mount option
kib committed rG8e6f6a5fbde7: nullfs_mount: use symbols instead of string literals for cache mount options (authored by kib).
nullfs_mount: use symbols instead of string literals for cache mount options
kib committed rG419f2fe6b70b: nullfs: add a helper for testing if vnode belongs to a nullfs mount (authored by kib).
nullfs: add a helper for testing if vnode belongs to a nullfs mount
kib committed rG035f1971ade4: fs/nullfs/null.h: put first definition after headers include (authored by kib).
fs/nullfs/null.h: put first definition after headers include