#15569: usb_disk stalls & unmounts when large I/O transfers are not queued
--------------------------------+----------------------------
Reporter: X512 | Owner: nobody
Type: bug | Status: new
Priority: normal | Milestone: Unscheduled
Component: Drivers/Disk/USB | Version: R1/Development
Resolution: | Keywords:
Blocked By: | Blocking:
Has a Patch: 0 | Platform: All
--------------------------------+----------------------------
Changes (by waddlesplash):
* component: System/Kernel => Drivers/Disk/USB
* summary:
System freeze when attempting to execute large binary not loaded to
disk cache
=> usb_disk stalls & unmounts when large I/O transfers are not queued
Comment:
As I noted in the comment above, there are 3 problems occurring here:
1) USB stack cannot run transfers > ~12MB in size, as it fails to
allocate physical memory (not really a "bug", there is an upper limit on
the USB stack physical buffer pool, and IIRC this is actually ~12-16MB of
individual pages; i.e. if the driver requested memory in larger chunks it
might work.)
2) usb_disk stalls when the USB stack fails to queue a transfer (that is
too large). I'm not really sure why this is.
3) usb_disk does not segment I/O.
Realistically, we should solve both (2) and (3).
--
Ticket URL: <https://dev.haiku-os.org/ticket/15569#comment:8>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.