Or are you using the rt_gettime() pointer to validate the whole runtime and killing it all if that pointer is bad.
This is reasonable to me... had a question about this code relative to what was on IRC...
Sat, Mar 17
This has been committed.
Updated, per the review, but haven't gone back and re-checked to see if any of these routines are in a filter. I Think when I checked them, they were all MPSAFE, but I'll admit I wasn't looking for filters at the time.
Update pyscho drivers per Marius.
Another round of careful preening of when / where we need to drop
Giant. It appears we don't need to drop in vt at all. Better fix for
psycho since I don't think those interrupts can be marked MPSAFE (at
least I'm unsure, so err on the side of caution).
Fri, Mar 16
There is one more user of vfs_mountroot(), from kern_reroot(). We have Giant locked around kern_reboot() call in kern_shutdown.c. I believe I cleaned geom from useless asserts that Giant is not owned, so may be the leftover is innocent.
Or may be, try to remove Giant from kern_shutdown.c as well. I suspect that other caller of kern_reboot(), namely shutdown_nice(), is not locked consistently. E.g. it seems that vt(4) does not lock Giant when calls it.
audit callers of shutdown_now
Having looked closely, though, it appears that it relies on it only for single byte quantities
This is the reason why such unification (of field access) is impossible without breaking big-endian support.
I just want to make this clear to everybody. Sometimes hardware people are nice to the software folks and distribute fields of different meanings 'evenly' throughout registers and other structures when designing protocols, standards and new hardware. NVMe is not such a case.
When a field spans more than one byte, it becomes impossible to support both endianess with the simple approach of "reverse fields and ifdef".
looks good to me.
this looks good to my eye.
Although the standard may not define the order, the ABI does. And the TCP/IP stack already requires that bits be packed how I've assume they are packed, so there's no new requirement here. I find the 'C allows anything' argument unpersuasive because in practice it doesn't really allow it, and the compiler is constrained by ABIs and things like the BSD stack depends on it. Having looked closely, though, it appears that it relies on it only for single byte quantities, which gives a smaller level of confidence than I'd originally thought (I know it used to do multiple-byte as bitfields, for example, but that was a while ago).
Thu, Mar 15
These changes look good to me.
Should the register definitions and other structures which previously used bit fields get similar changes?
review comments so far
Changes look fine, but you should probably remove the commented out code.
Wed, Mar 14
Kill it with fire. It's my fault after all.
- Fsck bails out on any EIO or ENODEV errors. Warner Losh (imp@) at Netflix has been working to clean up the I/O subsystem so that these errors are consistently returned. So failing disks should be readily detected in the not too distant future.
Tue, Mar 13
However, %%DATADIR%%/mef406f1_0b000021.fw is listed there, but I have a 2a version in my tree from Intel. Can you confirm that this is the latest version in what's released? The 2a version may be pre-release still.
Otherwise, all the files I care about for $WORK match the latest that we have.
Mon, Mar 12
fix overlooked review comment
Refactor commit, plus add some additional refactoring
- Minor cosmetic changes.
- We can't use d_opendata for blkio storage.
- Make struct libi386_devdesc match the struct devdesc better
- Use the actual struct devdesc at the start of all *_devdesc structs
- Remove d_type from devdesc. It's not needed as we can fetch it from
- GC unused routines.
- Use the one-line-per-file pattern here, and sort the file names.
- Move the env convenience routines out of boot1.c.
- Star BootCurrent entry when booting.
- Print the load and device path as well as BootCurrent and BootOrder
- Refactor currdev setting
As my cats say: "If the box don't fits, I don't sits"
This is not an unreasonable workaround to serialize the access routines.
Since they can be de-facto open calls, one wonders if we need to separate out the 'access' bit from the 'open' bit somehow. I don't have any good ideas for doing that since that separation will either be cumbersome, invoke indirect calls, or otherwise introduce races with I/O that will want to happen once access() returns.
Yea, there's no way in hell this could possibly work now. Better to say so than to allow it. Not sure ENOTTY is the right error, but have no appetite to bikeshed on it.
Add lock around TUR stuff in response to a AEN
Sat, Mar 10
Rebased and cleaned up some trivial stuff based on divergent lines on
two machines that were almost the same. Now they are the same.
Fix the type-punning better. Things work for me better now.
Fri, Mar 9
The current version fails as /boot/loader.efi loaded from /boot/boot1.efi, so some more work is needed here.
Thu, Mar 8
Bool for what makes sense
fix count down
I see no security issues here. I agree that a man page would be nice, and a note in it communicating risk would also be nice.
Neither gate this change. It doesn't change the security profile of the driver. It rearranged the deck chairs a bit, but any security problems before the change are there after the change.
Wed, Mar 7
updated... I can't get this one to fail, but I couldn't get it to fail before.... Can you test?
I have the hardware, finally, to try to reproduce this. I should be able to try later today.
update with kevan's zfs stuff
With a patch to make the sibling-partition search logic work for ZFS, this seems to DTRT for me on all of my current devices- the only exception is that it doesn't do this bit  that "finds the best text mode" - I'm not sure if that's a good thing or a bad thing, though. =)
Sorry, ticked the wrong box.
I'm curious why you don't setup a kqueue event structure to point to the file and then just poll it each time through. That would be no more expensive than the time() call, and you would have no lags. Would also save all the stat calls too, which would be a win.
Mostly FreeBSD project normal form changes needed to this code.
Tue, Mar 6
Committed. This can be closed.
FYI: I need to figure out what to do about actually committing this...
Mon, Mar 5
Rebase and address review comments