Age | Commit message (Collapse) | Author | Files | Lines |
|
sigev_value.sival_ptr to store the private data structure.
This allows easier use from SMB2. Ensure aio is initialized before the
aio_pending_size check else aio will never be used.
Jeremy.
|
|
smblctx in our locking code. 2). Widens smblctx to 64-bits internally. Preparing to use the SMB2 handle as the locking context.
Jeremy.
|
|
This will allow us to share logic much easier between SMB1 and SMB2
servers.
Jeremy
|
|
Change schedule_aio_read_and_X/schedule_aio_write_and_X to
return NTSTATUS. Move the grant and release of the lock into
the aio code.
Jeremy
|
|
Call from actual aio read or write. No reason to call this globally on startup.
Jeremy.
|
|
Jeremy.
|
|
Jeremy.
|
|
|
|
|
|
Jeremy.
|
|
|
|
In the includes we define SIGRTMIN to 32 if it's not defined already. This
value could be fairly low and it's better to use NSIG(number of defined
signals) as the lower mark for the available signals.
We have similar defenition in the source3/smbd/aio.c, which can be safely
removed, as it comes from includes.h then.
With regards,
Timur Bakeyev.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
|
|
The aio_fork module does not need this, as it does not communicate via signals
but with pipes. Watching a strace log with those become_root() calls in aio.c
is absolutely awful, and it does affect performance.
|
|
We keep the seqnum/mid mapping in the smb_request structure.
This also moves one global variable into the
smbd_server_connection struct.
metze
|
|
[MS-SMB] 3.3.5.1 Receiving Any Message says that the seqnum
is incremented by only for ntcancel requests for any other
request it's by incremented by 2, even if it doesn't expect
a response.
metze
|
|
This replaces release_level2_oplocks_on_change with
contend_level2_oplock_begin/end in order to contend level2 oplocks
throughout an operation rather than just at the begining. This is
necessary for some kernel oplock implementations, and also lays the
groundwork for better correctness in Samba's standard level2 oplock
handling. The next step for non-kernel oplocks is to add additional
state to the share mode lock struct that prevents any new opens from
granting oplocks while a contending operation is in progress.
All operations that contend level 2 oplocks are now correctly spanned
except for aio and synchronous writes. The two write paths both have
non-trivial error paths that need extra care to get right.
RAW-OPLOCK and the rest of 'make test' are still passing with this
change.
|
|
This changelist allows for the addition of custom performance
monitoring modules through smb.conf. Entrypoints in the main message
processing code have been added to capture the command, subop, ioctl,
identity and message size statistics.
|
|
|
|
metze
|
|
The goal is to move all this variables into a big context structure.
metze
|
|
|
|
|
|
The goal is to remove the remaining direct calls to construct_reply_common.
|
|
|
|
|
|
|
|
Sooner or later this would bite us.
|
|
|
|
|
|
We need to become root for AIO read and write to allow the AIO thread
to send a completion signal to the parent process when the IO
completes
(This used to be commit c548e5c69f9d8bc85a654f4d29d64c735a5e780b)
|
|
In the negprot reply, we allowed the client to issued "max mux" concurrent
requests. The OS might allow less, for example AFAIK AIX has a configurable
limit of concurrent AIO requests. We will fall back to sync operation for the
requests that are too many when aio_read/aio_write return an error.
Jeremy, please check!
(This used to be commit 8f86f7f25c4eb71bbdfcc6bf2d12eaaae9a8d9ec)
|
|
This is for external modules implementing the Posix AIO API that not
necessarily depend on the signal mechanism to indicate completion.
(This used to be commit 9a069d306bb6f8a2cd51b8ba87b433884942d13f)
|
|
(This used to be commit 1ba223f202a070a695581e0d7161473a3ebf4332)
|
|
Necessary to survive RAW-SEEK with AIO enabled.
Jeremy, please check!
(This used to be commit e2ca12c2345c0e3916dd09d097b2ba1ce2989fa8)
|
|
Jeremy, please check!
(This used to be commit 81d823e026fb332a88b6e1f15030fe49719f2522)
|
|
The logic was wrong: A "SMB_VFS_AIO_FORCE()==False" disabled async I/O, whereas
a "SMB_VFS_AIO_FORCE()==True" should enforce it regardless of other settings.
Alexander, please check!
(This used to be commit 46882ad9927c95caadeb7fb03c1d7491bbe1fb22)
|
|
(This used to be commit 24e719a1d432d5de022ab903457df0dd67c24b85)
|
|
Michael
(This used to be commit 3c997ae0002d4c50e8899600c17ddf74ac61f6f0)
|
|
with Volker. Mostly making sure we have data on the incoming
packet type, not stored in the smb header.
Jeremy.
(This used to be commit c4e5a505043965eec77b5bb9bc60957e8f3b97c8)
|
|
(This used to be commit 7fb858b350856d626fed6f062029fcf09b8251e2)
|
|
negotiation works.
Jeremy.
(This used to be commit d78045601af787731f0737b8627450018902b104)
|
|
bugs in various places whilst doing this (places that assumed
BOOL == int). I also need to fix the Samba4 pidl generation
(next checkin).
Jeremy.
(This used to be commit f35a266b3cbb3e5fa6a86be60f34fe340a3ca71f)
|
|
(This used to be commit 5c6c8e1fe93f340005110a7833946191659d88ab)
|
|
(This used to be commit 9ad91bd20592850d7b6393e1ac7f0e0919d69668)
|
|
(This used to be commit f18b7a9a282ebb5c31a89a601798f9a0db51867e)
|
|
(This used to be commit eabe796e464e5fe10d0f4cca1362985c529f5a5b)
|
|
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
|
|
Jeremy.
(This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
|
|
on failure in the write path.
Jeremy.
(This used to be commit cd3f7dbee809fb40194af0e7509142166e02b252)
|
|
Prototype of create_aio_ex_read, set_message and definition of
UNIXERROR have changed in r22389 and r22391? to require an additional
"inbuf" argument. Some places in smbd/aio.c had not been adapted.
This patch fixes the build.
Michael
(This used to be commit 9de1af6dc835fa12a75bae00935cd605f61217a3)
|