| Age | Commit message (Collapse) | Author |
|
|
|
|
|
to component I/O
fixes the xbd(4) KASSERT() triggered by raidframe, noted in PR kern/55397
by Frank Kardel
|
|
|
|
and pool_prime() (and their pool_cache_* counterparts):
- the pool_set*wat() APIs are supposed to specify thresholds for the count of
free items in the pool before pool pages are automatically allocated or freed
during pool_get() / pool_put(), whereas pool_sethardlimit() and pool_prime()
are supposed to specify minimum and maximum numbers of total items
in the pool (both free and allocated). these were somewhat conflated
in the existing code, so separate them as they were intended.
- change pool_prime() to take an absolute number of items to preallocate
rather than an increment over whatever was done before, and wait for
any memory allocations to succeed. since pool_prime() can no longer fail
after this, change its return value to void and adjust all callers.
- pool_setlowat() is documented as not immediately attempting to allocate
any memory, but it was changed some time ago to immediately try to allocate
up to the lowat level, so just fix the manpage to describe the current
behaviour.
- add a pool_cache_prime() to complete the API set.
|
|
This was presumably eaten by git cvsexportcommit, which is curious
because I thought I had gotten out of the habit of passing -k to it.
|
|
If a disk is backed by a physical medium other than itself, such as
cgd(4), then it passes DK_DUMP_RECURSIVE to disable the recursion
detection for dk_dump.
If, however, a device represents a physical medium on its own, such
as wd(4), then it passes 0 instead.
With this, I can now dump to dk on cgd on dk on wd.
|
|
|
|
Confirmed by martin@ in PR/54760.
|
|
module hook, we can share a common set of synchronization structures.
This cuts the amount of cacheline_aligned data for these structures by
50%.
Note that we still have a per-hook localcount, since we need to count
individual references.
As discussed with riastradh@
Welcome to 9.99.22 !
|
|
|
|
and remove code to handle failures that can no longer happen.
|
|
initialization and warns, unconditionaly initialize dksc at declaration
with a XXX gcc comment.
|
|
harmless because we didn't use the pointer then.
Reported-by: syzbot+77097fae0e3aad6de088@syzkaller.appspotmail.com
|
|
- callback functions return 0 and their result is not checked; make them void.
- there are two types of callbacks and they used to overload their parameters
and the callback structure; separate them into "function" and "value"
callbacks.
- make the wait function signature consistent.
|
|
|
|
|
|
|
|
discussed on irc.
NFCI intended.
Ride the earlier kernel bump - it;s getting crowded.
|
|
|
|
|
|
- Change sizeof(type) -> sizeof(*variable)
- Use macros for the long buffer length allocations
- Remove "bit polishing" memsets() -- do them only once
- Remove unnecessary casts
Thanks to oster@ for finding bugs and testing.
|
|
The test to check if force was reversed when the code was factored out.
|
|
|
|
- Don't try to load compat code if the ioctl is not for us.
|
|
|
|
|
|
|
|
|
|
rf_get_raid(). Things compile, but don't work correctly.
|
|
and provide methods to the private softc
- Provide a function for constructing a RF_Raid_t from an RF_Config_t
- Factor out the big inline ioctl code into functions
|
|
|
|
since the request structs are different and the row in the old struct is
the col in the new one).
- Restructure the way compat modules are loaded so that we only load them
for the ioctls that need them. Put a comment explaining why...
- Set retcode after loading compat (now that the fail disk passthrough
hack is gone), so that various ioctls don't always fail.
|
|
|
|
rf_netbsd32 is only relevant on _LP64 as all the structures are
the same for arm32 oabi/eabi compat.
only do it for _LP64 *and* COMAPT_NETBSD32.
|
|
this is not true for alpha, ia64 and arm32 ports, and the first two
were not building because of it, and the latter would be missing
the oabi support (likely not a big deal, but still wrong.)
add a makefile fragment that tells you if it is supported and include
it where needed to define COMPAT_NETBSD32 when building the normal
kernel (ie, modules & rump.)
fixes alpha build, probably fixes ia64 build.
XXX: still leaves some netbsd32 code in rf_netbsdkintf.c, that should
be moved into some hooks, but first the configuration setup
needs to be moved into a common function the netbsd32 code can
call into, vs living in the switch case itself.
|
|
that opt_compate_netbsd32.h would have, otherwise we get a "redefined"
error from gcc.
XXX this looks fishy, Paul, can you have a look, please?
|
|
compat code lives in their own compat_raid_xx modules, which will now
be autoloaded if needed.
While here, extract the compat_netbsd32_raid code into its own module,
too.
Welcome to 8.99.34
|
|
For consistency move prototype to the _mod.h header.
XXX: Why are the compat files here? Shouldn't they be in compat/common?
Or because this could be a separate module, they belong with it?
|
|
NFCI
|
|
Thanks to mlelstv for finding this!
|
|
<subsystem>_<function>_<version>_hook
NFCI
XXX Note that although this introduces a change in the kernel-to-
XXX module interface, we are NOT bumping the kernel version number.
XXX We will bump the version number once the interface stabilizes.
|
|
if bdv == NULL, to aid in the former.
As discussed 1 week ago on tech-kern.
|
|
|
|
|
|
|
|
|
|
request it in their calls to bufq_alloc().
|
|
- RAIDFRAME_CONFIGURE needs to be versioned as the rows was removed,
adding RAIDFRAME_CONFIGURE80, rf_config80() etc.
- RAIDFRAME_CONFIGURE32 changes to match
- rf_get_info80() passed the wrong source to copyout()
some fixes to my original change were independantly made by nakayama@
who confirmed the changes work properly now.
|
|
this means some ioctls overlap.
|