Arvid Norberg
|
9024209d51
|
merged set_settings race condition fix into trunk
|
2012-04-06 03:02:50 +00:00 |
Arvid Norberg
|
a2521bd23c
|
fix a bunch of issues to properly support dynamic linking of libtorrent with visibility=hidden. Still requires a small patch to boost
|
2012-03-18 23:31:04 +00:00 |
Arvid Norberg
|
85ef2528c6
|
serve cache hits without a round-trip to the disk thread for improved seeding performance
|
2011-11-16 07:09:12 +00:00 |
Arvid Norberg
|
b430152174
|
post disk job completions in batches to save CPU in the network thread
|
2011-10-19 05:46:49 +00:00 |
Arvid Norberg
|
f6b6b57c0e
|
fix avoid-readback cache algorithm
|
2011-09-27 04:05:05 +00:00 |
Arvid Norberg
|
bc2f0c8c5e
|
move disk_buffer_pool out to its own file
|
2011-07-31 02:24:36 +00:00 |
Arvid Norberg
|
209b9e4186
|
make disk timing be average over the last second. fixed some other bugs in previous changes
|
2011-06-26 19:45:33 +00:00 |
Arvid Norberg
|
a73960aa5a
|
support release asserts
|
2011-05-08 09:04:59 +00:00 |
Arvid Norberg
|
74ccff22be
|
use a deque instead of list for disk io jobs queue
|
2011-03-28 06:01:24 +00:00 |
Arvid Norberg
|
3d63cb98b7
|
log read job queue size
|
2011-03-20 09:04:03 +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
|
c015e28792
|
more disk thread timing
|
2011-03-19 22:23:58 +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
|
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
|
c0253d9977
|
increase averaging window for disk I/O timing measurements
|
2011-03-13 10:09:20 +00:00 |
Arvid Norberg
|
03a7442532
|
add disk cache stats to session stats
|
2011-03-11 07:37:12 +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
|
4ed6b1a067
|
introduce a low watermark for disk io blocking connections
|
2011-02-04 03:02:23 +00:00 |
Arvid Norberg
|
02668e8f75
|
fix message posting to work from multiple threads
|
2010-08-26 17:00:24 +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
|
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
|
f092ddb49e
|
make the sliding average class a template
|
2010-04-16 16:06:17 +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
|
1189a3ef82
|
initialize members in cache_status
|
2010-03-04 03:43:50 +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
|
238f7e38f5
|
improve disk stats logging to include cache hits
|
2010-01-31 21:13:52 +00:00 |
Arvid Norberg
|
5b747f58f7
|
add guided read cache and update tuning docs
|
2010-01-31 19:14:00 +00:00 |
Arvid Norberg
|
a4ff3cdf87
|
fix new disk cache implementation
|
2010-01-30 02:36:41 +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
|
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
|
da48f026b6
|
fixed disk_io_thread header
|
2009-12-17 08:46:51 +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
|
bd881ac154
|
fixed more link issues on windows. examples build with shared linking on windows
|
2009-12-02 17:46:25 +00:00 |
Arvid Norberg
|
6343fe6a6d
|
optimized header dependencies to lower build time
|
2009-11-23 08:38:50 +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
|
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
|
7933132cd9
|
fixed assert when built with disk stats
|
2009-08-05 19:02:51 +00:00 |
Arvid Norberg
|
ecdd7231b8
|
removed redundant code in disk_io_thread
|
2009-07-21 04:32:27 +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
|
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
|
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
|
e322b318ae
|
improved handling of out-of-memory conditions in disk I/O thread
|
2009-05-23 18:39:55 +00:00 |
Arvid Norberg
|
5211badc1e
|
fixed syntax error
|
2009-05-23 16:19:04 +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
|
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
|
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
|
cf6dc377c9
|
define fixes for disk stats build configurations
|
2009-05-04 06:42: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
|
dce0e1bb58
|
fixed disk stat build
|
2009-04-30 01:42:30 +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
|
e2ac32e7cf
|
remove unused members and fix warning
|
2009-03-14 09:25:26 +00:00 |
Arvid Norberg
|
41ff39605b
|
removed unused member variable
|
2009-02-08 20:26:25 +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
|
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
|
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 |
Arvid Norberg
|
09b3a865ef
|
fixed compiler flags in pkg-config file and made header files not depend on the NDEBUG define
|
2008-11-29 21:33:21 +00:00 |
Arvid Norberg
|
f503bbfe86
|
fix for when aborting torrents that are being checked. Fix in client_test when removing torrents that are checking.
|
2008-11-17 01:19:46 +00:00 |
Arvid Norberg
|
9bae670ac7
|
fix build with boost-1.36
|
2008-08-16 21:11:27 +00:00 |
Arvid Norberg
|
21dff61cb5
|
clears read cache when paused. Saves memory
|
2008-07-18 15:31:22 +00:00 |
Arvid Norberg
|
3cb1369385
|
improved error reporting of file errors (uses boost.system's error_code). Now permission errors are properly reported when checking files
|
2008-07-17 23:41:46 +00:00 |
Arvid Norberg
|
9c9c13c7bb
|
exposed read cache info as well as write cache
|
2008-07-11 10:29:26 +00:00 |
Arvid Norberg
|
52f6204288
|
simplified the disk-io mutexes and made it more efficient. separated the disk io mutex into a buffer mutex, queue mutex and the piece cache mutex.
|
2008-06-12 04:40:37 +00:00 |
Arvid Norberg
|
6e69480176
|
disk_io_thread fixes. Properly destructs torrent objects while disk io mutex is not locked. Properly flushes disk cache when closing, and aborting read and file check jobs. Fixes #334
|
2008-06-09 04:46:34 +00:00 |
Arvid Norberg
|
3910fe78de
|
separated file_storage from torrent_info and create_torrent
|
2008-05-28 08:44:40 +00:00 |
Arvid Norberg
|
c7e6c04705
|
switched over to asio from boost-1.35
|
2008-05-03 16:05:42 +00:00 |
Arvid Norberg
|
3fea2080fd
|
added an asynchronous save_resume_data to make it easier to synchronize with the disk IO thread
|
2008-04-13 18:54:36 +00:00 |
Arvid Norberg
|
d4cfa126aa
|
storage fixes
|
2008-04-12 22:08:07 +00:00 |
Arvid Norberg
|
093d912e9a
|
receive buffer optimization. added receive_buffer_size and used_receive_buffer to peer_info. changed plugin api to make use of new disk_buffer_holder type
|
2008-04-10 10:03:23 +00:00 |
Arvid Norberg
|
75ef4ec1f1
|
added option to not use pool allocators (useful when using memory debugging tools)
|
2008-04-09 05:19:11 +00:00 |
Arvid Norberg
|
35fd9aec61
|
msvc build fixes and warning fixes
|
2008-04-05 21:18:27 +00:00 |
Arvid Norberg
|
f53cfa7eeb
|
removed checker thread
|
2008-03-08 06:06:31 +00:00 |
Arvid Norberg
|
c689c0b5fc
|
replaced deque with list in disk_io_thread
|
2008-02-26 20:08:33 +00:00 |
Arvid Norberg
|
1d1398ed7f
|
read cache fix
|
2008-02-24 23:14:10 +00:00 |
Arvid Norberg
|
ef9ef674d5
|
added read cache. Not fully configurable yet
|
2008-02-22 04:11:04 +00:00 |
Arvid Norberg
|
6c552db68e
|
added disk cache expiration
|
2008-02-10 00:58:25 +00:00 |
Arvid Norberg
|
8cf0510144
|
added disk cache for write operations
|
2008-02-08 10:22:05 +00:00 |
Arvid Norberg
|
e0d1951fac
|
fixes #234. properly shuts down the disk io thread
|
2007-12-24 08:15:10 +00:00 |
Arvid Norberg
|
f6b34b7f0b
|
added missing include guard to disk_io_thread.hpp
|
2007-12-17 22:07:03 +00:00 |
Arvid Norberg
|
9b54043478
|
attempt to fix potential deadlock in disk_io_thread
|
2007-12-13 04:05:25 +00:00 |
Arvid Norberg
|
b032c26bf0
|
adds invariant check to make sure pieces that are complete are also checked. adds a debug function in the disk_io_thread. Fixes a problem with a failing disk write that would not clear the block for re-download. Adds some extra session logging
|
2007-10-18 00:32:16 +00:00 |
Arvid Norberg
|
59c7f5bfbb
|
added option to delete files from disk as a torrent is removed
|
2007-10-13 03:33:33 +00:00 |
Arvid Norberg
|
b48948e231
|
changed the double send buffers to a chained buffer using iovec send operations. buffers are recycled (saves memory and cpu) and memory copies are avoided (saves cpu). More statistics is added to track buffer usage
|
2007-09-29 16:14:03 +00:00 |
Arvid Norberg
|
b5a2373bff
|
added an option to generate a disk io log file
|
2007-09-17 08:15:54 +00:00 |
Arvid Norberg
|
9364a2d01d
|
added priority to disk io jobs
|
2007-09-16 01:34:06 +00:00 |
Arvid Norberg
|
192ce4b463
|
added some extra checks for buffer overrun in disk_io_thread
|
2007-08-02 01:42:19 +00:00 |
Arvid Norberg
|
3b8670626a
|
merged back async_io branch into trunk
|
2007-06-10 20:46:09 +00:00 |