Nick Mathewson
90e8d1f58f
Merge branch 'bug23539_032_01_squashed'
2017-09-25 11:12:56 -04:00
Nick Mathewson
581e2c8b2c
Whitespace fix.
2017-09-25 11:12:45 -04:00
David Goulet
ef2a449cce
sched: Make KISTSchedRunInterval non negative
...
Fixes #23539 .
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-25 11:11:30 -04:00
Nick Mathewson
22e2c3bf7d
Fix check-spaces and a weird copyright.
2017-09-22 12:20:26 -04:00
Nick Mathewson
ac3fdb74c2
Remove unused chosen_scheduler_type variable.
2017-09-22 09:56:54 -04:00
Matt Traudt
88b317ef28
sched: move code to respect comments
...
The diff is confusing, but were two static scheduler functions that
needed moving to static comment block.
No code change. Thanks dgoulet for original commit
2017-09-22 08:52:27 -04:00
Matt Traudt
22699e3f16
sched: only log when scheduler type changes
...
Closes 23552. Thanks dgoulet for original impl
2017-09-22 08:51:22 -04:00
David Goulet
c20d4db7bf
sched: Hard exit if we can't select a scheduler
...
Fixes #23581
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-21 14:18:42 -04:00
Matt Traudt
4a3b61a5b3
sched: reorder code to fit comment bodies; comment typos
...
Closes 23560
2017-09-19 20:13:28 -04:00
Roger Dingledine
1c956ccd5f
fix typos/etc found while starting to look at scheduler
2017-09-19 19:55:57 -04:00
Matt Traudt
a8c54ce581
sched: Allow the new sched to react to new cons
2017-09-19 19:07:48 -04:00
teor
e77ece3b31
Avoid a compilation warning on macOS in scheduler_ev_add()
...
This warning is caused by a different tv_usec data type on macOS
compared to the system on which the patch was developed.
Fixes 23575 on 0.3.2.1-alpha.
2017-09-19 16:32:47 +10:00
David Goulet
c7af923567
sched: BUG() on event_add() and log_warn next_run
...
It is highly unlikely to happen but if so, we need to know and why. The
warning with the next_run values could help.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-18 10:58:38 -04:00
Nick Mathewson
c1deabd3b0
Run our #else/#endif annotator on our source code.
2017-09-15 16:24:44 -04:00
David Goulet
513d642a66
sched: Revert IF_BUG_ONCE() to tor_assert()
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15 11:40:59 -04:00
David Goulet
1033e14a69
sched: Define SCHEDULER_KIST_PRIVATE for more encapsulation
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15 11:40:59 -04:00
David Goulet
c910610701
sched: Improve logging if KIST is disabled
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15 11:40:59 -04:00
David Goulet
0d0b677b64
test: Fix unit tests with latest scheduler changes
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15 11:40:59 -04:00
David Goulet
734dbfa590
sched: Make the scheduler object static
...
Each type of scheduler implements its own static scheduler_t object and
returns a reference to it.
This commit also makes it a const pointer that is it can only change inside
the scheduler type subsystem but not outside for extra protection.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15 11:40:59 -04:00
David Goulet
14cd8bdd4b
sched: Don't expose the global scheduler libevent object
...
Instead, add wrappers to do the needed action the different scheduler needs
with the libevent object.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15 11:40:59 -04:00
David Goulet
84d18f70f3
sched: Always call on_channel_free() regardless of state
...
A channel can bounce in the scheduler and bounce out with the IDLE state which
means that if it came in the scheduler once, it has socket information that
needs to be freed from the global hash table.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15 11:40:59 -04:00
David Goulet
7cc9621d11
sched: Add Schedulers torrc option
...
This option is a list of possible scheduler type tor can use ordered by
priority. Its default value is "KIST,KISTLite,Vanilla" which means that KIST
will be used first and if unavailable will fallback to KISTLite and so on.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15 11:40:59 -04:00
Matt Traudt
6ff8c86ac6
sched: change most asserts to non-fatal BUGs
2017-09-15 11:40:59 -04:00
Matt Traudt
8ccb2c106a
sched: rename scheduler to the_scheduler
2017-09-15 11:40:59 -04:00
Matt Traudt
61fc9c41ad
sched: switch to monotonic time; add/fix comments, style, and logs msgs
2017-09-15 11:40:59 -04:00
David Goulet
8424c4f35b
sched: Detect KIST support at compile time
...
Add a detection for the KIST scheduler in our build system and set
HAVE_KIST_SUPPORT if available.
Adapt the should use kist function with this new compile option.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15 11:40:59 -04:00
Matt Traudt
dde358667d
sched: Implement the KIST scheduler
...
Closes #12541
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15 11:40:59 -04:00
Matt Traudt
91c7bebfa2
consensus: Add a generic notification function on new consensus
...
Some groundwork for the KIST scheduler implementation.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-07 11:49:38 -04:00
Neel Chauhan
5ee6ca8da2
Switch to offsetof()
2017-08-03 08:56:35 -04:00
Nick Mathewson
7505f452c8
Run the copyright update script.
2017-03-15 16:13:17 -04:00
Nick Mathewson
04b8af9dc0
Whitespace fixes
2016-10-26 08:39:04 -04:00
Nick Mathewson
d1bcba19a9
Turn scheduler.c documentation into doxygen.
2016-10-20 11:02:04 -04:00
Nick Mathewson
a8676b1ede
Merge branch 'bug18902_squashed'
2016-07-28 06:59:03 -04:00
Nick Mathewson
4757303873
Fix all -Wshadow warnings on Linux
...
This is a partial fix for 18902.
2016-07-28 06:58:44 -04:00
Sebastian Hahn
265e40b481
Raise libevent dependency to 2.0.10-stable or newer
...
Only some very ancient distributions don't ship with Libevent 2 anymore,
even the oldest supported Ubuntu LTS version has it. This allows us to
get rid of a lot of compat code.
2016-07-04 12:40:09 +02:00
Nick Mathewson
57699de005
Update the copyright year.
2016-02-27 18:48:19 +01:00
Yawning Angel
16cf1679e7
Fix scheduler compilation on targets where char is unsigned.
...
Per discussion with nickm, the `dir` argument should be a int rather
than a signed char.
Fixes bug #14764 .
2015-02-06 16:26:28 +00:00
Nick Mathewson
f54e54b0b4
Bump copyright dates to 2015, in case someday this matters.
2015-01-02 14:27:39 -05:00
Nick Mathewson
b94cb401d2
Coverity complained that we were not checking this return value
2014-12-22 11:13:11 -05:00
Nick Mathewson
430f5852ac
Fix a signed/unsigned comparison warning in scheduler_run
2014-11-28 09:18:17 -05:00
Nick Mathewson
e2641484a7
One more, appease "make check-spaces"
2014-11-27 22:57:04 -05:00
Andrea Shepard
12b6c7df4a
Make queue thresholds and flush size for global scheduler into config options
2014-10-07 09:53:57 -07:00
Andrea Shepard
dc3af04ba8
Make scheduler_compare_channels() mockable
2014-09-30 23:14:58 -07:00
Andrea Shepard
f8ceb0f028
Make scheduler_run() mockable
2014-09-30 23:14:58 -07:00
Andrea Shepard
b7125961de
Expose scheduler_compare_channels() to test suite
2014-09-30 23:14:58 -07:00
Andrea Shepard
71a9ed6feb
Make some scheduler.c static functions visible to the test suite
2014-09-30 23:14:57 -07:00
Andrea Shepard
9869254608
Make scheduler.c static globals visible to test suite
2014-09-30 23:14:25 -07:00
Andrea Shepard
ade60890d0
Make scheduler_channel_doesnt_want_writes() mockable
2014-09-30 23:09:14 -07:00
Andrea Shepard
fd57840a77
Make scheduler_channel_doesnt_want_writes() mockable
2014-09-30 22:54:10 -07:00
Andrea Shepard
85ee070852
Make scheduler_release_channel() mockable
2014-09-30 22:49:58 -07:00