]> granicus.if.org Git - apache/commit
Merge r1823047, r1824454, r1824463, r1824464, r1824497, r1824862, r1824877 from trunk:
authorYann Ylavic <ylavic@apache.org>
Tue, 20 Feb 2018 13:42:59 +0000 (13:42 +0000)
committerYann Ylavic <ylavic@apache.org>
Tue, 20 Feb 2018 13:42:59 +0000 (13:42 +0000)
commit5448f5ad60cb5f5ed35c472cbdeaa998443e3bb1
tree5fc77e241657a8de66a8ad89f82d309f7fc2f2f7
parent5a961ed3a2be7f194940b7d828284b3bceb82b44
Merge r1823047, r1824454, r1824463, r1824464, r1824497, r1824862, r1824877 from trunk:

mpm_event: move lingering close "sucker" from the listener to worker(s).

This was the last non-constant time action performed by the listener thread.

It's now handled by the worker thread directly after entering lingering close,
which should directly address the cases when the socket is already closed
remotely at that time, hence avoid more scheduling (it may be the common case
for some scenarios).

And it's only if the above would need blocking (i.e. more data to suck) that
the socket is added to the pollset for the listener to re-schedule a worker
later when ready. If no worker is available at that time then the socket is
forcibly closed (similarly to what's done for keepalive connections in this
case).

Also, since process_lingering_close() is now called by a worker thread and
with almost no depth in the call stack, we can grow the size of the "suck"
buffer from 2K to 32K to potentially call recv() up to sixteen times less.

mpm_event: follow up to r1823047.

Update clogged counter on read_request retry too.

mpm_event: follow up to r1823047: simplify "clogging" logic (reentrance).

mpm_event: follow up to r1823047: complete state validation after processing.

mpm_event: follow up to r1823047: CHANGES entry.

mpm_event: follow up to r1823047 and r1824464.

MMN bump for CONN_STATE_NUM, plus don't consider CONN_STATE_LINGER_* as valid
states returned process_connection (never have been).

mpm_event: follow up to r1823047 and r1824862.

Revert (broken) functional change from r1824862.

Submitted by: ylavic
Reviewed by: ylavic, minfrin, jim

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1824879 13f79535-47bb-0310-9956-ffa450edef68
CHANGES
include/ap_mmn.h
include/httpd.h
server/mpm/event/event.c