User Details
- User Since
- Jun 4 2014, 6:42 AM (547 w, 6 d)
Wed, Nov 27
Looks goof to me.
Thank you!
Also, cv_wmesg is kind of semi-private and it's used only for diagnostics (tracing).
So, I don't think that it's precedent for general access to cv implementation details.
As I noted in the email thread, there is only one consumer outside of condvar implementation.
Fri, Nov 15
Thu, Nov 14
If you have added this from a diff, could you please re-do the diff with -U 9999 option?
That's to have a lot more context lines which would be useful when reviewing.
Nov 1 2024
Oct 12 2024
Oct 5 2024
Sep 25 2024
Oh, thinking about this triggered some old memories and I've dug up my old musings on this topic.
The code was never really tested and I cannot guarantee that it's correct, but it seemed correct to the younger me and it still seems correct the now me.
https://people.freebsd.org/~avg/wfhandler.v8.h
Another general suggestion is that using CK_SLIST from ConcurrencyKit (included into FreeBSD) might help to make the code more compact and expressive.
But I haven't thought through details, so please feel free to ignore this suggestion if CK does not provide something that could be readily used.
The proposed code is completely good too.
I am not sure that such a OS/ACPI (firmware) mutex is possible.
Sep 19 2024
My only concern with the current deregistration approach is a hypothetical situation where a handler resides in a loadable module and, thus, can be unloaded after deregistration.
I like the clever simplicity of the current code where list elements are never removed and only the head pointer can ever be modified.
But maybe it would be good for nmi_remove_handler to wait for a completion of the handler if it's running.
E.g., we could add an atomic counter to struct nmi_handler which would be incremented when the handler is started and decremented when the handler is done.
Then, nmi_remove_handler could spin-wait on that counter if it's not zero (after having cleared func field to prevent future calls).
Sep 15 2024
LGTM
I like how using t_dtrace_trapframe both eliminates the search for the frame below the trap frame and the assumption on the position of the trap frame.
Aug 27 2024
Aug 12 2024
Jun 27 2024
Jun 20 2024
I would subtly change the title :-)
Otherwise, looks good to me.
Jun 14 2024
Jun 5 2024
Jun 4 2024
Looks good to me.
A bit ashamed that I could not figure that fls(x - 1) does the job if zero is handled as a special case.
Apr 21 2024
All should be done. Thank you for reporting and diagnosing the problem.
Apr 8 2024
Looks like I assumed too much without paying attention to the scratch buffer.
I'll revert the change.
Mar 16 2024
Feb 19 2024
update description
Based on earlier entries for Samsung 8x0 drives in ata_da.c and scsi_da.c it seems that a separate entry per model line was a preference.
But combing multiple entries is also okay.
However, I'd like to do it as a separate commit a bit later, unless you want to do that yourself.
Feb 18 2024
The controller is
ahci2@pci0:0:17:0: class=0x010601 rev=0x40 hdr=0x00 vendor=0x1002 device=0x4391 subvendor=0x1043 subdevice=0x84dd vendor = 'Advanced Micro Devices, Inc. [AMD/ATI]' device = 'SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]' class = mass storage subclass = SATA
Just want to comment that based on the errors I initially thought that the problem was a bad cable or SATA port, so I tried a few cables and a few ports on the motherboard, all with the same result.
Then I searched the internet and found some reports for the SSD model.
Then I tried attaching the SSD to an LSI SAS 2308 controller and all problem immediately went away.
Then I added the quirk and the problem got fixed for connecting to on-board SATA as well.
I should clarify that I didn't see just silent data corruption, there were read and write errors as well.
I first-hand experienced problems with a device identified as Samsung SSD 870 EVO 250GB SVT02B6Q.
I inferred that 860 is also affected based on the Linux bug report and on a similar problem with 850 as well.