Arvid Norberg
|
f6a42863e3
|
try to optimize disk write performance by raising the low watermark (for disk thread queue) to start reading from sockets and also post the start-reading event earlier. Also implement fair round-robin of which peers get to start downloading on this event
|
2011-03-27 20:35:38 +00:00 |
Arvid Norberg
|
346a6fb175
|
another read job starvation fix + some more logging
|
2011-03-27 08:21:26 +00:00 |
Arvid Norberg
|
41bc60c36a
|
fixed bug in avoid_readback disk cache algorithm
|
2011-03-26 19:06:58 +00:00 |
Arvid Norberg
|
aabb862400
|
fixed windows build
|
2011-03-21 06:31:48 +00:00 |
Arvid Norberg
|
2dfd1a972b
|
prevent read jobs from starving in the disk I/O thread
|
2011-03-20 19:17:59 +00:00 |
Arvid Norberg
|
836de5d338
|
fixed infinite loop when using avoid_readback cache eviction algorithm
|
2011-03-20 17:08:18 +00:00 |
Arvid Norberg
|
3d63cb98b7
|
log read job queue size
|
2011-03-20 09:04:03 +00:00 |
Arvid Norberg
|
5c26294c29
|
fixed typo
|
2011-03-20 08:29:18 +00:00 |
Arvid Norberg
|
2525b8b457
|
sorting counts as job time in disk I/O thread timing
|
2011-03-20 07:44:25 +00:00 |
Arvid Norberg
|
c1620de8d8
|
sorting needs to count as part of the disk job to get proper proportions of disk thread time metrics
|
2011-03-20 06:37:19 +00:00 |
Arvid Norberg
|
e4df633157
|
added another disk cache flush algorithm to minimize readback when hashing pieces
|
2011-03-20 05:47:27 +00:00 |
Arvid Norberg
|
1b6227ad31
|
report disk read-back when verifying piece hashes
|
2011-03-20 01:19:14 +00:00 |
Arvid Norberg
|
afc9806319
|
hash timing change
|
2011-03-19 22:52:29 +00:00 |
Arvid Norberg
|
c015e28792
|
more disk thread timing
|
2011-03-19 22:23:58 +00:00 |
Arvid Norberg
|
68c3faaad1
|
fixed bug in disk job timer
|
2011-03-18 03:52:25 +00:00 |
Arvid Norberg
|
782bc974a1
|
log average disk job time instead of cache time
|
2011-03-18 03:07:10 +00:00 |
Arvid Norberg
|
6db11079c8
|
add performance warning when disk write queue exceeds half of the write cache size
|
2011-03-16 07:45:51 +00:00 |
Arvid Norberg
|
7e3f69ecbf
|
optimized disk cache flushing a bit
|
2011-03-16 07:21:58 +00:00 |
Arvid Norberg
|
5e273aff34
|
fix bug in read cache expiration logic
|
2011-03-15 02:54:41 +00:00 |
Arvid Norberg
|
d6fbff13df
|
measure disk sort time (phys_offset)
|
2011-03-15 02:21:28 +00:00 |
Arvid Norberg
|
7dde47b98a
|
measure disk cache flush times
|
2011-03-15 01:44:32 +00:00 |
Arvid Norberg
|
a08bcf7459
|
change semantics of disk read time and add disk hash time
|
2011-03-14 05:21:46 +00:00 |
Arvid Norberg
|
a18f047311
|
minor storage fix
|
2011-03-13 21:07:46 +00:00 |
Arvid Norberg
|
03a7442532
|
add disk cache stats to session stats
|
2011-03-11 07:37:12 +00:00 |
Arvid Norberg
|
44fe8c160a
|
fix no-exceptions build
|
2011-03-10 05:01:36 +00:00 |
Arvid Norberg
|
56937edf56
|
cleaned up some exception handling and introduced macros like BOOST_TRY/BOOST_CATCH to make the optional exception handling nicer
|
2011-02-25 17:00:36 +00:00 |
Arvid Norberg
|
97a40a45cd
|
fully support unbuffered I/O
|
2011-02-22 02:53:26 +00:00 |
Arvid Norberg
|
141ada013f
|
fixed a whole bunch of build warnings on gcc and msvc, along with some fixes discovered along the way
|
2011-02-21 05:24:41 +00:00 |
Arvid Norberg
|
8bb71da401
|
disk write queue watermark fix
|
2011-02-13 22:27:02 +00:00 |
Arvid Norberg
|
aa116cd1d1
|
fix race condition when initializing the disk thread
|
2011-02-11 07:20:11 +00:00 |
Arvid Norberg
|
9efd739cf5
|
fixed typo
|
2011-02-10 06:06:56 +00:00 |
Arvid Norberg
|
19d6c53ad4
|
increase low watermark for disk write queue. log payload rates in session stats
|
2011-02-04 06:33:47 +00:00 |
Arvid Norberg
|
4ed6b1a067
|
introduce a low watermark for disk io blocking connections
|
2011-02-04 03:02:23 +00:00 |
Arvid Norberg
|
6663f527da
|
fixed error handling in torrent_info constructor
|
2011-01-19 10:07:51 +00:00 |
Arvid Norberg
|
00efc31bf6
|
various smaller fixes
|
2010-12-30 03:46:11 +00:00 |
Arvid Norberg
|
daea6d507e
|
fixed uninitialized variable in utp MTU logic. Fixed array overrun in disk cache
|
2010-12-24 22:53:00 +00:00 |
Arvid Norberg
|
27f84d1618
|
fixed minor error handling logging and assert issue in disk io thread
|
2010-11-26 20:38:31 +00:00 |
Arvid Norberg
|
6ba977aa9b
|
fixed bug in session_settings::disable_hash_checks
|
2010-11-07 21:41:03 +00:00 |
Arvid Norberg
|
4b6a73417d
|
fixed error reporting issue in disk I/O thread
|
2010-10-18 07:38:14 +00:00 |
Arvid Norberg
|
aa1da121bc
|
attempt to support disk IO priority on linux
|
2010-07-24 02:54:42 +00:00 |
Arvid Norberg
|
c6a6fe1c07
|
fixed typo
|
2010-07-23 19:11:00 +00:00 |
Arvid Norberg
|
9109af0ce1
|
fix for disk job queue size measurement
|
2010-07-23 16:15:14 +00:00 |
Arvid Norberg
|
4e576f93fd
|
removed the session mutex for improved performance
|
2010-07-14 04:16:38 +00:00 |
Arvid Norberg
|
996c68dfa7
|
timer fix
|
2010-06-21 05:45:45 +00:00 |
Arvid Norberg
|
f9ec9180ff
|
more disk cache cleanup optimizations
|
2010-05-16 23:14:47 +00:00 |
Arvid Norberg
|
e07bad0686
|
optimized disk I/O cache clearing
|
2010-05-13 15:01:20 +00:00 |
Arvid Norberg
|
85824b1924
|
fixed bug in the disk thread that could get triggered under heavy load
|
2010-05-05 05:44:45 +00:00 |
Arvid Norberg
|
24a3bbb985
|
optimize disk thread teardown for large read caches
|
2010-05-04 02:58:23 +00:00 |
Arvid Norberg
|
dce2edb6cc
|
fixed vs 2010 build
|
2010-04-30 19:08:16 +00:00 |
Arvid Norberg
|
fb28835452
|
slight performance fix in disk elevator algorithm
|
2010-04-24 21:53:45 +00:00 |
Arvid Norberg
|
225232906a
|
fixed disk I/O iterator bug
|
2010-04-14 22:02:49 +00:00 |
Arvid Norberg
|
1ee414f4b9
|
fixed iterator bug in disk I/O thread
|
2010-04-14 06:26:38 +00:00 |
Arvid Norberg
|
6975f4b350
|
fixed typo in asking for available amount of memory
|
2010-04-10 04:58:43 +00:00 |
Arvid Norberg
|
116c3f3c45
|
fix linux build
|
2010-03-12 03:17:25 +00:00 |
Arvid Norberg
|
79bd8fcd52
|
made the default cache size depend on the amount of physical RAM. and fixed disk thread settings update when loading through load_state
|
2010-03-10 07:14:10 +00:00 |
Arvid Norberg
|
9edb348093
|
read time is only cache misses
|
2010-03-04 03:49:06 +00:00 |
Arvid Norberg
|
a942890e8d
|
added more detailed instrumentation of the disk I/O thread
|
2010-03-03 07:09:04 +00:00 |
Arvid Norberg
|
fdb68ab784
|
attempt to not make m_buffer_queue_size to ever get negative
|
2010-03-03 04:32:06 +00:00 |
Arvid Norberg
|
053d11ea3e
|
fixed mutex lock typo
|
2010-02-24 00:04:28 +00:00 |
Arvid Norberg
|
278c1f91c0
|
fix typo in previous check-in
|
2010-02-21 09:03:56 +00:00 |
Arvid Norberg
|
59deff7a44
|
fixed issue with disk read cache not being cleared when removing torrents
|
2010-02-21 08:52:26 +00:00 |
Arvid Norberg
|
c263f8daf7
|
volatile cache improvement
|
2010-02-06 17:56:58 +00:00 |
Arvid Norberg
|
7b0555ae45
|
fixed disk cache bug
|
2010-02-05 04:30:57 +00:00 |
Arvid Norberg
|
c1b8124d20
|
volatile cache tuning
|
2010-02-01 01:11:10 +00:00 |
Arvid Norberg
|
238f7e38f5
|
improve disk stats logging to include cache hits
|
2010-01-31 21:13:52 +00:00 |
Arvid Norberg
|
ca20d2d600
|
fixed broken build
|
2010-01-31 20:22:35 +00:00 |
Arvid Norberg
|
5b747f58f7
|
add guided read cache and update tuning docs
|
2010-01-31 19:14:00 +00:00 |
Arvid Norberg
|
53144f6f14
|
fixes to the new disk cache and the volatile cache feature
|
2010-01-31 16:29:52 +00:00 |
Arvid Norberg
|
ccf8b0278a
|
added volatile read cache option
|
2010-01-30 03:50:17 +00:00 |
Arvid Norberg
|
f6c0d5af35
|
optimized disk cache to work with large caches
|
2010-01-27 04:25:45 +00:00 |
Arvid Norberg
|
a046850130
|
support disk I/O priority setting
|
2010-01-23 03:02:32 +00:00 |
Arvid Norberg
|
c9b594fde1
|
support sending suggest messages based on what's in the read cache. support 'explicit read cache'
|
2010-01-15 16:45:42 +00:00 |
Arvid Norberg
|
2948b3b375
|
fixed file checking bug introduced by fancy disk IO optimizations
|
2010-01-13 23:37:23 +00:00 |
Arvid Norberg
|
a1299c3a10
|
optimize disk I/O elevator algorithm to spend less time picking job
|
2010-01-12 01:56:48 +00:00 |
Arvid Norberg
|
d498c129ab
|
clear sparse flag on files that complete on windows
|
2010-01-09 18:40:05 +00:00 |
Arvid Norberg
|
ecb770eca7
|
always unlock while waiting for disk-IO
|
2009-12-25 16:13:35 +00:00 |
Arvid Norberg
|
6298322b1d
|
service disk-read requests that hit the cache immediately and circumvent the elevator ordering
|
2009-12-16 10:49:15 +00:00 |
Arvid Norberg
|
1f5859d31f
|
error_code fix. added is_error_code_enum template specialization and using the abbreviated syntax to build error_codes
|
2009-11-29 07:06:38 +00:00 |
Arvid Norberg
|
ab4b7f99ad
|
fixed error handling in read_into_piece
|
2009-11-28 03:14:08 +00:00 |
Arvid Norberg
|
a5586d154d
|
more header dependency optimizations
|
2009-11-25 06:55:34 +00:00 |
Arvid Norberg
|
6343fe6a6d
|
optimized header dependencies to lower build time
|
2009-11-23 08:38:50 +00:00 |
Arvid Norberg
|
562e2512b9
|
some vs2010 fixes
|
2009-11-22 23:55:54 +00:00 |
Arvid Norberg
|
c418165e07
|
replaced boost.filesystem with custom functions (improves efficiency and drops unnecessary dependencies and improves libtorrent portability)
|
2009-10-26 01:29:39 +00:00 |
Arvid Norberg
|
8a5b7d5d36
|
got rid of the last recursive mutexes. abstracted the threading primitives (and switched over to use asio's internal ones).
|
2009-10-20 02:49:56 +00:00 |
Arvid Norberg
|
6d01cb475c
|
msvc build fixes
|
2009-09-06 00:57:01 +00:00 |
Arvid Norberg
|
bec481acdf
|
improved disk read performance and fixed bug in storage_interface's backwards compatibility functions
|
2009-09-05 07:21:10 +00:00 |
Arvid Norberg
|
49f54a6f7f
|
file alignment and disk_io_thread bug fixes
|
2009-09-02 16:42:33 +00:00 |
Arvid Norberg
|
7933132cd9
|
fixed assert when built with disk stats
|
2009-08-05 19:02:51 +00:00 |
Arvid Norberg
|
63368c1383
|
added dummy storage class to disable disk I/O and an option to disable hash checking (for performance testing and simulation)
|
2009-08-02 06:40:45 +00:00 |
Arvid Norberg
|
838a246f6b
|
disk stats fix
|
2009-08-01 22:47:07 +00:00 |
Arvid Norberg
|
73a8673cfc
|
queued disk bytes fix
|
2009-07-26 19:54:16 +00:00 |
Arvid Norberg
|
ecdd7231b8
|
removed redundant code in disk_io_thread
|
2009-07-21 04:32:27 +00:00 |
Arvid Norberg
|
e9bd8f6e1f
|
turned fast-resume errors into error_codes. fixed typo in documentation
|
2009-06-28 00:36:41 +00:00 |
Arvid Norberg
|
306b75e6b1
|
boost 1.35 fixes
|
2009-06-19 16:42:33 +00:00 |
Arvid Norberg
|
3df15ad39e
|
fixed memory leak in disk io thread when not using the cache
|
2009-06-14 22:48:07 +00:00 |
Arvid Norberg
|
62a7946968
|
disk stats fix
|
2009-06-14 22:20:23 +00:00 |
Arvid Norberg
|
f0134c1b11
|
improved disk error handling and expanded use of error_code in error reporting
|
2009-06-10 08:30:55 +00:00 |
Arvid Norberg
|
e438a3ccfc
|
more boost-1.34.1 fixes
|
2009-06-03 07:46:50 +00:00 |
Arvid Norberg
|
a9a12a2391
|
fix build with boost-1.34.1
|
2009-06-03 07:22:43 +00:00 |
Arvid Norberg
|
bd33814376
|
improve disk error handling
|
2009-05-31 22:41:53 +00:00 |
Arvid Norberg
|
0283f07aed
|
more buffer categories to help debugging
|
2009-05-31 22:38:49 +00:00 |
Arvid Norberg
|
b2c5d8a563
|
include the piece index that failed in disk errors
|
2009-05-31 19:44:56 +00:00 |
Arvid Norberg
|
3e7bd46706
|
fixed handling of unaligned block requests
|
2009-05-31 19:33:54 +00:00 |
Arvid Norberg
|
d45e6cb118
|
fix bug in disk_io_thread
|
2009-05-31 10:15:45 +00:00 |
Arvid Norberg
|
bc83387583
|
fix uninitialized variable in disk_io_thread
|
2009-05-30 04:02:03 +00:00 |
Arvid Norberg
|
3ea52b240f
|
fixed memory leak in disk cache
|
2009-05-28 01:19:48 +00:00 |
Arvid Norberg
|
065bd283cf
|
timer fixes
|
2009-05-27 17:06:50 +00:00 |
Arvid Norberg
|
c66dda1c9f
|
fixed bug in disk cache flush, largest contiguous function
|
2009-05-27 16:50:46 +00:00 |
Arvid Norberg
|
2f627a4b00
|
attempt to mitigate read cache thrashing
|
2009-05-24 16:49:01 +00:00 |
Arvid Norberg
|
29d56f9a8b
|
improved read cache memory utilization
|
2009-05-24 15:32:14 +00:00 |
Arvid Norberg
|
a89d6cced1
|
clean up some disk cache duplication of logic and added another memory usage optimization for the write cache
|
2009-05-24 00:12:53 +00:00 |
Arvid Norberg
|
ae8488fb91
|
improved read cache memory efficiency
|
2009-05-23 19:27:27 +00:00 |
Arvid Norberg
|
e322b318ae
|
improved handling of out-of-memory conditions in disk I/O thread
|
2009-05-23 18:39:55 +00:00 |
Arvid Norberg
|
e197f5cb85
|
disk_io_thread assert fixes
|
2009-05-23 17:17:47 +00:00 |
Arvid Norberg
|
f9c12ef589
|
added more disk io asserts
|
2009-05-23 15:50:38 +00:00 |
Arvid Norberg
|
c1d9198dc3
|
added largest_contiguous cache flush algorithm
|
2009-05-23 07:35:45 +00:00 |
Arvid Norberg
|
1392b14fec
|
fixed disk_io error handling bugs
|
2009-05-23 03:05:21 +00:00 |
Arvid Norberg
|
e36ea4ba5d
|
added instrumentation for disk access. Useful to benchmark disk cache performance
|
2009-05-23 03:03:52 +00:00 |
Arvid Norberg
|
0127edac14
|
added disk-checking delay, to leave room for other disk operations while checking a torrent
|
2009-05-22 06:32:39 +00:00 |
Arvid Norberg
|
cb9c3cb37d
|
memory optimization for checking torrents
|
2009-05-21 16:15:05 +00:00 |
Arvid Norberg
|
c047f66454
|
improved disk buffer logging and added extra asserts when logging disk buffer stats
|
2009-05-19 07:00:05 +00:00 |
Arvid Norberg
|
062e1796c0
|
fixed crash when shutting down while checking a torrent
|
2009-05-13 17:17:33 +00:00 |
Arvid Norberg
|
85bf463e11
|
added session setting to control disk buffer pool allocation sizes
|
2009-05-12 18:52:05 +00:00 |
Arvid Norberg
|
039ee486af
|
use alloca for iovec arrays
|
2009-05-12 17:56:12 +00:00 |
Arvid Norberg
|
89e4c41ea2
|
fixed indentation
|
2009-05-11 21:19:03 +00:00 |
Arvid Norberg
|
1eb2799a03
|
added more allocation logging for statistics builds. Identified and fixed some memory waste
|
2009-05-07 20:30:20 +00:00 |
Arvid Norberg
|
838df44184
|
documented file_rename_failed_alert and file_renamed_alert. they were previously not documented. Fixed bug where the storage would be left in an error state (and eventually pause the torrent) when a rename_file() failed. The error is now only reported back through the alert
|
2009-05-07 06:41:41 +00:00 |
Arvid Norberg
|
ff3db926fb
|
allocates 10 disk buffers at a time instead of 32. Fixed bug where connection candidates would be too high
|
2009-05-06 07:06:26 +00:00 |
Arvid Norberg
|
cf6dc377c9
|
define fixes for disk stats build configurations
|
2009-05-04 06:42:24 +00:00 |
Arvid Norberg
|
641abc6c4a
|
slight memory optimization and some header cleanup
|
2009-05-03 20:21:24 +00:00 |
Arvid Norberg
|
807c1fc397
|
added validation check to disk_buffer_pool (and disk_io_thread in 0.14). This should catch any reference to the disk_io_thread after it has been destructed
|
2009-05-03 03:16:15 +00:00 |
Arvid Norberg
|
e4ddb13b6f
|
made the cache_size setting include send and receive buffers
|
2009-05-02 06:52:57 +00:00 |
Arvid Norberg
|
033fd5bd22
|
count send and receive buffers against the cache size limit
|
2009-05-01 08:00:58 +00:00 |
Arvid Norberg
|
509c8ed402
|
timed_wait does not seem to work as expected, revert to regular wait()
|
2009-04-15 16:32:05 +00:00 |
Arvid Norberg
|
91ba36a396
|
added compile time option for mlock support
|
2009-03-31 08:15:21 +00:00 |
Arvid Norberg
|
c6017f9366
|
reverted bug introduced a few check-ins ago. Fixed case when recursive_copy fails (don't remove the original files). Cleaned up callback dispatching in disk_io_thread in trunk. Improved unit tests for move_storage
|
2009-03-31 08:05:46 +00:00 |
Arvid Norberg
|
36eb9c4f51
|
move storage fix
|
2009-03-30 04:55:23 +00:00 |
Arvid Norberg
|
af10b55254
|
wakes up the disk io thread once a second to flush caches
|
2009-03-14 09:24:58 +00:00 |
Arvid Norberg
|
7ddffbac64
|
fixed windows build
|
2009-02-06 17:59:49 +00:00 |
Arvid Norberg
|
5c12db28d2
|
added option to lock disk cache in physical memory
|
2009-02-06 09:46:13 +00:00 |
Arvid Norberg
|
1ac8f806fa
|
added seed mode support (lazy hash checking)
|
2009-02-03 07:46:24 +00:00 |
Arvid Norberg
|
26910eff1d
|
update_settings fixes for disk_io_thread
|
2009-01-28 07:09:10 +00:00 |
Arvid Norberg
|
b3a17b1787
|
added disk buffer instrumentation and log parser
|
2009-01-23 09:13:31 +00:00 |
Arvid Norberg
|
00808473e7
|
factor out disk_buffer_pool from disk_io_thread. refactored the file open modes to be platform independent. gave the disk_io_thread its own copy of session_settings that it shares with storage. added an unaligned_read implementation to storage. Added options to session_settings on when to open files in unbuffered mode. Added unit tests for unaligned reads
|
2009-01-21 07:31:49 +00:00 |
Arvid Norberg
|
113d1f3557
|
moved page_aligned_allocator to its own file and uses it in set_piece_hashes to not pass in unaligned buffers to storage read
|
2009-01-15 17:09:36 +00:00 |
Arvid Norberg
|
630601aedf
|
use & instead of %
|
2009-01-15 04:25:07 +00:00 |
Arvid Norberg
|
b9d7538ba8
|
fixed storage to generate a proper error when the read operation
|
2009-01-14 03:05:35 +00:00 |
Arvid Norberg
|
3f0fa60164
|
fixed typo preventing pool-allocators=off build
|
2009-01-13 06:49:40 +00:00 |
Arvid Norberg
|
7592ad4aee
|
updated disk IO to support unbuffered files
|
2009-01-11 02:02:34 +00:00 |
Arvid Norberg
|
cfd116ffad
|
made disk_io_settings be synchronized through the job queue
|
2009-01-10 05:46:02 +00:00 |