#
be808057 |
|
27-Apr-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
IORequest: Refactor IOOperation transferred-bytes and status accounting. Until the introduction of the nvme_disk driver, these classes were mostly only used directly by the IO scheduler, and then a few direct usages of IOOperation itself in the individual disk drivers; so API confusions were easily missed. When writing the nvme_disk driver's IORequest support, however, it became readily apparent that there were some pretty bad confusions around transferred-bytes accounting in IOOperation. This commit attempts to resolve all of those. There are two basic changes here: 1. Move transferred-bytes accounting into IOOperation::SetStatus. The "TransferredBytes" field of IOOperation is against the *original* range, not the actual operation's range (which will be wider, due to bouncing, etc.), and furthermore only applies to the actual content of the request (and not e.g. to a read half of a bounced write.) These two facts meant that determining what value to pass to SetTransferredBytes was not trivial, and was easy to get wrong. I recall messing that up when working on nvme_disk multiple times before reading the API carefully. 2. Do not pass redundant values to IORequest::OperationFinished. All of the values here can be derived (albeit indirectly) from the IOOperation, and all consumers of this API basically did just that. Rather than make them do it, make the IORequest take care of computing all of those values itself. Change-Id: Ic9ae29e1100319e5b7647647c4db7e5aad4d125e
|
#
ce08f03c |
|
01-Apr-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel & add-ons: Adjustments to use DoublyLinkedList::InsertBefore. The Insert(before, element) function has been marked deprecated since 2010, but still had many usage and kept accumulating more. It's long past time we got rid of all them and actually deprecated the function itself. Insert(before, element) just calls InsertBefore, so no functional change.
|
#
271ac910 |
|
09-Jan-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
Remove useless includes of khash.h * These files were already converted to BOpenHashTable. * For #9552.
|
#
4be4fc6b |
|
15-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
More 64-bit compilation/safety fixes.
|
#
24df6592 |
|
11-Jun-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged signals-merge branch into trunk with the following changes: * Reorganized the kernel locking related to threads and teams. * We now discriminate correctly between process and thread signals. Signal handlers have been moved to teams. Fixes #5679. * Implemented real-time signal support, including signal queuing, SA_SIGINFO support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition of the real-time signal range. Closes #1935 and #2695. * Gave SIGBUS a separate signal number. Fixes #6704. * Implemented <time.h> clock and timer support, and fixed/completed alarm() and [set]itimer(). Closes #5682. * Implemented support for thread cancellation. Closes #5686. * Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554. * Lots over smaller more or less related changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4535495d |
|
10-Jan-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged the signals branch into trunk, with these changes: * The team and thread kernel structures have been renamed to Team and Thread respectively and moved into the new BKernel namespace. * Several (kernel add-on) sources have been converted from C to C++ since private kernel headers are included that are no longer C compatible. Changes after merging: * Fixed gcc 2 build (warnings mainly in the scary firewire bus manager). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9910e4f1 |
|
30-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* The parent of an IOOperation cannot be NULL for completed operations. * This fixes CID 1507. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38458 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1d578e15 |
|
02-Jun-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixed more address types related issues. Mostly printf() or comparison warnings, but also some oversights from earlier changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
435c43f5 |
|
02-Jun-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced type generic_io_vec, which is similar to iovec, but uses types that are wide enough for both virtual and physical addresses. * DMABuffer, IORequest, IOScheduler,... and code using them: Use generic_io_vec and generic_{addr,size}_t where necessary. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36997 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0715529b |
|
26-Apr-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Renamed IOScheduler to IOSchedulerSimple and pulled an interface IOScheduler out of it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36492 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
271ac910a4cfdefa6393c1e7cb5e3a665404757d |
|
09-Jan-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
Remove useless includes of khash.h * These files were already converted to BOpenHashTable. * For #9552.
|
#
4be4fc6b1faddbd037146214a0011d320842b4f3 |
|
15-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
More 64-bit compilation/safety fixes.
|
#
24df65921befcd0ad0c5c7866118f922da61cb96 |
|
11-Jun-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged signals-merge branch into trunk with the following changes: * Reorganized the kernel locking related to threads and teams. * We now discriminate correctly between process and thread signals. Signal handlers have been moved to teams. Fixes #5679. * Implemented real-time signal support, including signal queuing, SA_SIGINFO support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition of the real-time signal range. Closes #1935 and #2695. * Gave SIGBUS a separate signal number. Fixes #6704. * Implemented <time.h> clock and timer support, and fixed/completed alarm() and [set]itimer(). Closes #5682. * Implemented support for thread cancellation. Closes #5686. * Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554. * Lots over smaller more or less related changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4535495d80c86e19e2610e7444a4fcefe3e0f8e6 |
|
10-Jan-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged the signals branch into trunk, with these changes: * The team and thread kernel structures have been renamed to Team and Thread respectively and moved into the new BKernel namespace. * Several (kernel add-on) sources have been converted from C to C++ since private kernel headers are included that are no longer C compatible. Changes after merging: * Fixed gcc 2 build (warnings mainly in the scary firewire bus manager). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9910e4f1bf2525cd931a35c63b2ecdb6bb990c14 |
|
30-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* The parent of an IOOperation cannot be NULL for completed operations. * This fixes CID 1507. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38458 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1d578e15fe5b5c3ff62866ae81aef529d00d7762 |
|
02-Jun-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixed more address types related issues. Mostly printf() or comparison warnings, but also some oversights from earlier changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
435c43f5912b109e7d5cf682865d2061e62fad8c |
|
02-Jun-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced type generic_io_vec, which is similar to iovec, but uses types that are wide enough for both virtual and physical addresses. * DMABuffer, IORequest, IOScheduler,... and code using them: Use generic_io_vec and generic_{addr,size}_t where necessary. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36997 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0715529b59a3965beea04288a564458225d6f470 |
|
26-Apr-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Renamed IOScheduler to IOSchedulerSimple and pulled an interface IOScheduler out of it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36492 a95241bf-73f2-0310-859d-f6bbb57e9c96
|