summaryrefslogtreecommitdiff
path: root/source3/smbd/aio.c
AgeCommit message (Collapse)AuthorFilesLines
2009-05-18Move down the become_root()/unbecome_root() calls into the VFS modulesVolker Lendecke1-6/+0
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.
2009-03-23s3:smbd: use new simplified snb_signing code in the serverStefan Metzmacher1-8/+5
We keep the seqnum/mid mapping in the smb_request structure. This also moves one global variable into the smbd_server_connection struct. metze
2009-03-06s3:signing: the seqnum should only be decremented by 1 for ntcancel requestsStefan Metzmacher1-4/+4
[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
2009-02-09s3 oplocks: Make the level2 oplock contention API more granularTim Prouty1-1/+3
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.
2009-02-09S3: New module interface for SMB message statistics gatheringtodd stecher1-3/+5
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.
2009-01-31Remove the global variable "chain_size"Volker Lendecke1-4/+2
2009-01-27s3:smbd: convert aio to use tevent_signalStefan Metzmacher1-100/+50
metze
2009-01-08s3:smbd: move all globals and static variables in globals.[ch]Stefan Metzmacher1-16/+10
The goal is to move all this variables into a big context structure. metze
2008-11-08Remove a direct inbuf reference (should have been removed with 8987641d...)Volker Lendecke1-1/+1
2008-11-04Rewrite aio.c to keep the whole smb_request structure, not just the inbufVolker Lendecke1-75/+41
2008-11-04Add construct_reply_common_req wrapperVolker Lendecke1-1/+1
The goal is to remove the remaining direct calls to construct_reply_common.
2008-11-04Fix nonempty blank linesVolker Lendecke1-3/+3
2008-11-04Use talloc for struct aio_extraVolker Lendecke1-27/+14
2008-11-03Make a comment match its function definitionVolker Lendecke1-1/+1
2008-11-02Make a [un]become_root wrap a bit tighterVolker Lendecke1-7/+11
Sooner or later this would bite us.
2008-11-02Remove a bunch of direct inbuf references by adding "vwv" to smb_requestVolker Lendecke1-3/+3
2008-09-15Fix aio on FreeBSD.Timur1-1/+16
2008-08-26become root for AIO operationsAndrew Tridgell1-1/+7
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)
2008-02-24Allow "max mux" async i/o requestsVolker Lendecke1-5/+9
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)
2008-02-24Export aio_request_done()Volker Lendecke1-3/+9
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)
2008-02-24AIO on streams does not work (yet...)Volker Lendecke1-0/+12
(This used to be commit 1ba223f202a070a695581e0d7161473a3ebf4332)
2008-02-19Update position information also for AIOVolker Lendecke1-0/+5
Necessary to survive RAW-SEEK with AIO enabled. Jeremy, please check! (This used to be commit e2ca12c2345c0e3916dd09d097b2ba1ce2989fa8)
2008-02-19Inform level II oplock holders when we write using AIOVolker Lendecke1-0/+2
Jeremy, please check! (This used to be commit 81d823e026fb332a88b6e1f15030fe49719f2522)
2008-01-30Re-enable async I/O for non-TSM systemsVolker Lendecke1-2/+4
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)
2008-01-12Remove an unused variableVolker Lendecke1-1/+0
(This used to be commit 24e719a1d432d5de022ab903457df0dd67c24b85)
2008-01-08Remove redundant parameter fd from SMB_VFS_AIO_CANCEL().Michael Adam1-1/+1
Michael (This used to be commit 3c997ae0002d4c50e8899600c17ddf74ac61f6f0)
2008-01-04Refactor the crypto code after a very helpful conversationJeremy Allison1-13/+14
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)
2007-12-27Fix the buildVolker Lendecke1-2/+3
(This used to be commit 7fb858b350856d626fed6f062029fcf09b8251e2)
2007-12-26Add SMB encryption. Still fixing client decrypt butJeremy Allison1-6/+11
negotiation works. Jeremy. (This used to be commit d78045601af787731f0737b8627450018902b104)
2007-10-18RIP BOOL. Convert BOOL -> bool. I found a few interestingJeremy Allison1-12/+12
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)
2007-10-10[GLUE] Rsync SAMBA_3_2_0 SVN r25598 in order to create the v3-2-test branch.Gerald (Jerry) Carter1-20/+161
(This used to be commit 5c6c8e1fe93f340005110a7833946191659d88ab)
2007-10-10r24332: schedule_aio_read_and_X does not need InBuf/OutBufVolker Lendecke1-13/+12
(This used to be commit 9ad91bd20592850d7b6393e1ac7f0e0919d69668)
2007-10-10r24279: Remove reply_prep_legacy from reply_write_and_XVolker Lendecke1-18/+18
(This used to be commit f18b7a9a282ebb5c31a89a601798f9a0db51867e)
2007-10-10r24049: Some more 64-bit warningsVolker Lendecke1-1/+1
(This used to be commit eabe796e464e5fe10d0f4cca1362985c529f5a5b)
2007-10-10r23784: use the GPLv3 boilerplate as recommended by the FSF and the license textAndrew Tridgell1-2/+1
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
2007-10-10r23779: Change from v2 or later to v3 or later.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
2007-10-10r23508: Fix sync_file() to return NTSTATUS and return thisJeremy Allison1-1/+8
on failure in the write path. Jeremy. (This used to be commit cd3f7dbee809fb40194af0e7509142166e02b252)
2007-10-10r22411: Fix the build:Michael Adam1-3/+5
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)
2007-10-10r22391: Looks bigger than it is. Make "inbuf" availableJeremy Allison1-1/+1
to all callers of smb_setlen (via set_message() calls). This will allow the server to reflect back the correct encryption context. Jeremy. (This used to be commit 2d80a96120a5fe2fe726f00746d36d85044c4bdb)
2007-10-10r22389: Start preparing for multiple encryption contexts in theJeremy Allison1-3/+13
server. Allow server to reflect back to calling client the encryption context that was sent. Jeremy. (This used to be commit b49e90335d1e589916b5ab4992e3c4a2d221ca7e)
2007-10-10r21279: Get rid of 'aio write behind', this is broken.Volker Lendecke1-155/+1
It should probably better be integrated with our write cache. Volker (This used to be commit 58bfd168b046a97a895aaa3384fd7af8d077a1d5)
2007-10-10r21278: The main goal of this was to get rid of the NetInBuffer / ↵Volker Lendecke1-41/+13
set_InBuffer. But it turns out that this patch actually speeds up the async writes considerably. I tested writing 100.000 times 65535 bytes with the allowed 10 ops in parallel. Without this patch it took about 32 seconds on my dual-core 1.6GHz laptop. With this patch it dropped to about 26 seconds. I can only explain it by better cache locality, NewInBuffer allocates more than 128k, so we jump around in memory more. Jeremy, please check! Volker (This used to be commit 452d51bc6fd41771b9c41ba6391664513d7cf2cd)
2007-10-10r21277: Fix an off by one error in the signal handler for aio: We can ↵Volker Lendecke1-1/+1
actually receive AIO_PENDING_SIZE signals, not one less. Jeremy I'm not merging this to 3_0_25, I want you to look at it first! Volker (This used to be commit 8fd0ec58360a349826508fc361a943650fdd6694)
2007-10-10r21269: ReformattingVolker Lendecke1-89/+151
(This used to be commit b2eaa733c52113f53b6ff8aea9fce20ede1e3b1f)
2007-10-10r20541: Fix some obvious glitches in wait_for_aio_completion. Hmmm. It seemsVolker Lendecke1-6/+5
reply_close() at its heart is going to be an async call :-) Volker (This used to be commit 36f60407ae9b430dc5d7f67dd3e7ed8b1dbc93a8)
2007-10-10r20237: Replace exit_server with exit_server_cleanly where appropriate. AllJames Peach1-3/+3
send_smb failures should be clean exits. All times when we exit as a matter of policy should also be clean exits. (This used to be commit d6382092e72120a3c89ffe81975e8898d454bf06)
2007-10-10r11283: Move to using sival_int from sival_ptr. Part of bug #2922.Jeremy Allison1-4/+10
Jeremy. (This used to be commit f68ff32630ee3b06b69bac59674ecc1496880a47)
2007-10-10r9985: Move the all the strict sync logic into file_sync().James Peach1-3/+1
(This used to be commit cc680bbe22b8bfc5a1900f11c2cbaeca3a9f9922)
2007-10-10r8402: allow to build with --enable-aio-support.Günther Deschner1-3/+3
Guenther (This used to be commit 49351d91c59b2e96ebddb2d721e660dcd90ec815)
2007-10-10r7963: Add aio support to 3.0.Jeremy Allison1-0/+748
Jeremy. (This used to be commit 1de27da47051af08790317f5b48b02719d6b9934)