lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 09 Aug 2011 10:56:41 +0200 From: Eric Dumazet <eric.dumazet@...il.com> To: Tom Herbert <therbert@...gle.com> Cc: davem@...emloft.net, netdev@...r.kernel.org Subject: Re: [RFC PATCH v2 1/9] dql: Dynamic queue limits Le dimanche 07 août 2011 à 21:43 -0700, Tom Herbert a écrit : > Implementation of dynamic queue limits (dql). This is a libary which > allows a queue limit to be dynamically managed. The goal of dql is > to set the queue limit, number of ojects to the queue, to be minimized > without allowing the queue to be starved. > > dql would be used with a queue whose use has these properties: > > 1) Objects are queued up to some limit which can be expressed as a > count of objects. > 2) Periodically a completion process executes which retires consumed > objects. > 3) Starvation occurs when limit has been reached, all queued data has > actually been consumed but completion processing has not yet run, > so queuing new data is blocked. > 4) Minimizing the amount of queued data is desirable. > > A canonical example of such a queue would be a NIC HW transmit queue. > > The queue limit is dynamic, it will increase or decrease over time > depending on the workload. The queue limit is recalculated each time > completion processing is done. Increases occur when the queue is > starved and can exponentially increase over successive intervals. > Decreases occur when more data is being maintained in the queue than > needed to prevent starvation. The number of extra objects, or "slack", > is measured over successive intervals, and to avoid hysteresis the > limit is only reduced by the miminum slack seen over a configurable > time period. > > dql API provides routines to manage the queue: > - dql_init is called to intialize the dql structure > - dql_reset is called to reset dynamic structures > - dql_queued when objects are being enqueued > - dql_avail returns availability in the queue > - dql_completed is called when objects have be consumed in the queue > > Configuration consists of: > - max_limit, maximum limit > - min_limt, minimum limit > - slack_hold_time, time to measure instances of slack before reducing > queue limit. Hi Tom Not clear to me what value you use for slack_hold_time in your benches/tests ? Are you sure jiffy resolution (might be HZ=100) is precise enough for future uses ? -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists