#16049 closed bug (fixed)
NVMe KDL, page fault in nvme_disk_io->_mutex_unlock
Reported by: | KapiX | Owned by: | waddlesplash |
---|---|---|---|
Priority: | normal | Milestone: | R1/beta2 |
Component: | Drivers/Disk/NVMe | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
I can browse the drive, but as soon as I do git status
it KDLs.
Drive: Intel 760p 512GB.
hrev54185 x86_64
Attachments (1)
Change History (10)
by , 5 years ago
Attachment: | 20200517_062733.jpg added |
---|
comment:2 by , 5 years ago
Interrupts not occurring is also #15874, but at least in that ticket the boot will just lock up altogether without blacklisting the driver. No interrupts is pretty bad; that deserves investigation.
3400 blocks may be outside the maximum I/O size, but the driver should be able to break it up already, so it seems strange it failed to queue that I/O. I guess enabling libnvme tracing may help discern what the exact problem there is?
It does look like segmented IO may call the callback more than once, though. So that may be worth investigating as a potential cause of the KDL.
comment:3 by , 5 years ago
Yes, it appears segmented I/O can result in the callback being invoked more than once, and there is no way to detect the last one. I've filed https://github.com/hgst/libnvme/issues/7 about this. It appears Intel controllers have "stripes" that other controllers do not; so it may be necessary to work around this.
comment:4 by , 5 years ago
Actually, never mind, I read through the code more and that should not be an issue here. The code in libnvme looks "bad" but the later call to nvme_request_add_child should take care of this.
comment:6 by , 5 years ago
(If it doesn't, please run "syslog" at KDL prompt and get me a picture of the last page.)
comment:8 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:9 by , 5 years ago
Milestone: | Unscheduled → R1/beta2 |
---|
Assign tickets with status=closed and resolution=fixed within the R1/beta2 development window to the R1/beta2 Milestone
(final time)