arvidn
317eb2fe2a
remove unused disk allocation code
2016-03-16 20:13:28 -04:00
arvidn
f79a9c7adf
merged RC_1_1 into master
2016-03-16 19:59:53 -04:00
Arvid Norberg
a1d60db706
Merge pull request #547 from arvidn/no-read-cache-1.1
...
fix use_read_cache=false
2016-03-16 08:14:15 -04:00
arvidn
4926081960
fix use_read_cache=false
2016-03-16 02:22:18 -04:00
arvidn
08bac479be
allow each peer have at least 2 allocated disk blocks at any given time, to avoid stalling when cache_size setting is small. also deprecate use_write_cache
2016-03-16 00:28:11 -04:00
Steven Siloti
4331f57021
restrict check_cache_level to only runing on one thread at a time
...
If another thread trys to call check_cache_level then m_cache_check_state is set
to indicate that the thread currently in check_cache_level needs to call it again.
2016-03-14 19:03:12 -07:00
Steven Siloti
d405535a3f
try to free the piece after kicking the hasher and flushing
2016-03-14 19:03:12 -07:00
Steven Siloti
e8f93df700
fix indentation
2016-03-14 19:03:12 -07:00
Steven Siloti
826bbe35ee
always cache writes
2016-03-14 19:03:12 -07:00
Steven Siloti
6e8db41dd2
check_cache_level after performing a job rather than before
...
If dirty blocks are added while the job is running there is a chance of
deadlock if the dirty blocks cause the cache to exceed its size limit and
no further jobs come in to trigger another check.
2016-03-14 19:03:12 -07:00
Steven Siloti
9c5bb25d65
always clear outstanding_flush after attempting to flush a cached write
...
Also clear outstanding_flush before calling kick_hasher because kick_hasher
may unlock the cache mutex which can allow more dirty blocks to be added
which may require another flush_hashed job be added.
2016-03-14 19:03:12 -07:00
arvidn
921cbeebed
add option to delete just the partfile when removing a torrent
2016-03-14 08:26:39 -04:00
arvidn
0d0048d415
try to evict a volatile piece before allocating a new one for a hash check. It may be faster to check files without growing the cache, or reusing the same buffers.
2016-03-13 12:52:44 -04:00
arvidn
6d85c7c5f0
merge RC_1_1 into master
2016-03-08 01:10:48 -05:00
arvidn
67774d660d
always keep at least 2 async hash jobs outstanding when rechecking torrents (to keep the bandwidth delay product full)
2016-03-06 16:31:18 -05:00
arvidn
a02c1d2164
record cache settings in the job instead of checking it twice for more robust behavior
2016-03-06 16:15:13 -05:00
arvidn
8ca76f9d59
fix support for auto disk cache size and disk buffer pool allocator behavior
2016-03-06 16:14:55 -05:00
arvidn
2bd6ad9974
remove invalid assert in the disk thread
2016-03-04 20:20:49 -05:00
arvidn
8135ea326f
rename async_check_fastresume to async_check_files, and make it take an add_torrent_params object instead of bencoded resume data
2016-02-20 02:00:07 -05:00
arvidn
ae7058e119
remove the timestamps and file sizes from the resume data. This makes saving resume data alot cheaper, since it doesn't have to go via the disk thread. It also removes an old-standing API usage issue where there was easily a race condition introduced between saving resume data and pausing a torrent.
2016-02-06 15:50:55 -05:00
arvidn
1f9f588e75
merge copyright year update and changelog from RC_1_0
2016-01-17 18:57:46 -05:00
arvidn
4cc2e879c4
comment out verbose pex logging. fix bug in disabled_storage and an error reporting issue on short reads in default_storage
2016-01-10 11:50:56 -05:00
arvidn
2acb3dcb24
clean up use of getrlimit() by wrapping it and move it to platform_util.cpp. Also take the opportunity to make it simulator friendly (consistent in simulation)
2015-12-02 00:45:34 -05:00
arvidn
b628692223
separate out announce_entry and torrent_status into their own headers
2015-09-18 08:08:08 -04:00
arvidn
17c5759829
disable warning for unused command line argument and fix warnings. remove redundant travis build config. use new preprocessor on clang to avoid warnings
2015-09-06 22:55:41 -04:00
arvidn
904da120d7
fixed some warnings
2015-08-20 22:28:00 +02:00
arvidn
8cf8e65861
turn linked_list into a template to improve type safety and remove some casts
2015-08-20 02:02:46 +02:00
arvidn
ffa870d280
fixed some GCC warnings
2015-08-20 01:33:20 +02:00
arvidn
bd177a857f
make tailequeue a template, introduce type safety, remove old-style casts
2015-08-19 15:22:05 +02:00
arvidn
5c8fc818c1
fix more warnings
2015-08-19 01:39:01 +02:00
arvidn
12da02ae52
fix some warnings
2015-08-18 09:33:00 -04:00
arvidn
8d8c049d9e
fix warnings and invalid defines in disk_io_thread.cpp
2015-08-18 07:55:50 -04:00
arvidn
9a0092c120
fix some warnings
2015-08-16 12:17:23 -04:00
Alden Torres
cd8a4d2511
Moved TORRENT_DISK_STATS to default_storage with the option of enable/disable at runtime.
2015-08-03 18:16:43 -04:00
arvidn
e0c3d28321
fix some warnings
2015-08-02 15:55:05 -04:00
arvidn
2b05b1c85c
fix cppcheck warnings
2015-07-11 10:36:13 -04:00
arvidn
f91799006a
fix make_shared invocation
2015-06-14 16:42:52 -04:00
arvidn
5cb095f6d2
support using 0 disk threads (to perform disk I/O in network thread)
2015-06-14 16:00:04 -04:00
arvidn
389ffc622c
don't pull in the asio namespace in libtorrent. refer to it by boost::asio
2015-06-06 01:24:25 -04:00
Arvid Norberg
d43f7b56a2
update copyright year
2015-06-03 05:18:48 +00:00
Arvid Norberg
9b0313bd8e
hold settings_pack by shared_ptr when passing it across thread boundaries. don't allocate it on the heap redundantly
2015-05-29 05:27:53 +00:00
Arvid Norberg
607e708bc4
fix warnings
2015-05-19 03:13:49 +00:00
Arvid Norberg
051ca6b22c
fix warnings
2015-05-18 05:32:18 +00:00
Arvid Norberg
58ae099cf8
clean up disk_io_job a bit to avoid old-style casts
2015-05-16 20:41:37 +00:00
Arvid Norberg
8fdacf9534
address coverity issues and build issue with non atomic 64 bit operations
2015-05-03 22:21:19 +00:00
Arvid Norberg
a1dbba7cf4
make clear_read_cache() code less confusing
2015-04-29 05:11:55 +00:00
Arvid Norberg
2fff222235
silence some warnings on msvc
2015-04-27 02:21:12 +00:00
Arvid Norberg
f5629eb403
cleanup and fixing of more warnings
2015-04-21 00:23:00 +00:00
Arvid Norberg
4d15f1410f
fix warnings, some clean-up and todo comments
2015-04-20 04:52:49 +00:00
Arvid Norberg
013ed36f09
landed alert_queue feature branch into trunk
2015-04-03 20:15:48 +00:00
Arvid Norberg
ccc7e45406
landed mutable torrents branch in trunk
2015-03-21 00:12:40 +00:00
Arvid Norberg
37225b71ae
const static -> static const (thanks gubatron). helps swigs parser
2015-03-14 00:42:27 +00:00
Arvid Norberg
6c1df7eb55
landed the bdecode branch in master. lazy_bdecode/lazy_entry is now being replaced by bdecode/bdecode_node
2015-03-12 05:20:12 +00:00
Arvid Norberg
c1dc982f4f
deprecate the ptime type and related time types. just use boost::chrono / std::chrono
2015-03-12 04:34:54 +00:00
Arvid Norberg
89055c4c7a
some more optimizations on loading torrents
2015-02-18 03:32:49 +00:00
Arvid Norberg
bc9281a27c
deprecate file_entry (used by file_storage) and clean up the add_file overload that borrows memory (and improve implementation and documentation). The python bindings were updated to more closely match the c++ API (specifically actually using file_storage)
2015-01-21 15:46:12 +00:00
Arvid Norberg
a1c1f9393d
fix flush_pieces in disk_io_thread to also flush the read cache
2015-01-01 10:10:13 +00:00
Arvid Norberg
1039d4ae86
tweak some TODO comments and fix one
2014-12-31 14:41:35 +00:00
Arvid Norberg
5666cdcd07
fix warnings
2014-12-09 09:33:34 +00:00
Arvid Norberg
1ed1963f29
remove size_type typedef in favor of boost::int64_t
2014-12-03 04:32:50 +00:00
Arvid Norberg
0b711f1280
remove unused variables. add some comments
2014-11-17 03:10:00 +00:00
Arvid Norberg
935eea9d0b
some more fixes to cache_status
2014-10-25 21:28:57 +00:00
Arvid Norberg
83394f54f9
transition fenced job histogram to session stats gauges. deprecate it from cache_status
2014-10-25 20:59:54 +00:00
Arvid Norberg
0bcbe433ed
deprecate most of cache_status type (use session stats instead)
2014-10-25 20:07:50 +00:00
Arvid Norberg
d287ce9c46
fix issue when hash checking files resulting in a short read
2014-10-12 23:49:51 +00:00
Arvid Norberg
f32f5e96aa
deprecate parts of cache_status and move those counters to session_stats counters. make the performance counters thread safe. fix some issues recently introduced to performance counters and the usage of them in client_test
2014-08-01 06:07:48 +00:00
Arvid Norberg
671ae32ae5
fix docs generation for stats counters
2014-07-30 02:00:14 +00:00
Arvid Norberg
035da93592
fixed disk_io_job flags being used as file flags
2014-07-28 01:06:00 +00:00
Arvid Norberg
cd456964ad
storage fixes
2014-07-20 08:59:02 +00:00
Arvid Norberg
f3a7008bd5
close files when stopping a torrent
2014-07-20 00:23:12 +00:00
Arvid Norberg
c8e8eb6e15
some asserts in disk_io_thread. fix issue in torrent::initialize
2014-07-12 19:23:31 +00:00
Arvid Norberg
7351389ce8
land libtorrent_aio branch in trunk
2014-07-06 19:18:00 +00:00
Arvid Norberg
6ef1b98717
merged compiler warning fixes from RC_1_0
2014-07-05 14:10:25 +00:00
Arvid Norberg
6c6fe4dfe2
merged fixes of warnings from RC_1_0
2014-07-04 23:40:31 +00:00
Arvid Norberg
18c52fe7cd
fix bug in patch to introduce file_priority disk job
2014-03-01 09:05:53 +00:00
Arvid Norberg
a0a41b6c5e
merged file priority fix from RC_0_16 and keep the disk thread's file priorities up to date
2014-02-28 10:19:29 +00:00
Arvid Norberg
a943fec777
update copyright
2014-02-23 19:12:25 +00:00
Arvid Norberg
b3de578fe7
merge invalid assert fix from RC_0_16
2014-02-07 09:35:08 +00:00
Arvid Norberg
6597eaf09a
there doesn't seem to be any point in exporting piece_block_progress, so don't do that. Introduce magic number check in disk_io_thread (mysterious crash/corruption happens in storage unit test on mac, but not very often and hard to reproduce).
2014-02-03 01:55:26 +00:00
Arvid Norberg
36c9add067
don't print stuff to stdout in debug builds. when waking up from completing a connection attempt, exit immediately if the connection is disconnecting, or disconnect if we're in graceful pause mode. some test cleanups
2014-01-26 08:18:13 +00:00
Arvid Norberg
e0644ce8f5
invariant check macro fixes
2014-01-21 19:26:09 +00:00
Arvid Norberg
36889a1524
asserts and logging in SSL test
2014-01-17 01:00:49 +00:00
Arvid Norberg
4e6b1cfbfb
update copyright
2013-12-25 17:07:16 +00:00
Arvid Norberg
89c3db477d
merge build fix with C++11 from RC_0_16
2013-09-25 19:44:29 +00:00
Arvid Norberg
f2e16c36b3
merged fix from RC_0_16
2013-09-12 07:10:52 +00:00
Arvid Norberg
75789e3958
fix uninitialized variable in disk_io_thread
2013-09-04 04:09:33 +00:00
Arvid Norberg
01c8c8543b
fix typo in move_storage
2013-05-11 21:32:18 +00:00
Arvid Norberg
4607e36c6f
fix move_storage bug when using fail_if_exist as well as use the boost::system::errc::file_exists as error code for that case
2013-05-11 03:54:18 +00:00
Arvid Norberg
982a14c2e9
extend move_storage functionality to have more flexible behavior
2013-05-09 02:50:16 +00:00
Arvid Norberg
431efc6157
merge storage fix from RC_0_16
2013-03-03 04:47:19 +00:00
Arvid Norberg
a0caa0f4b2
disable invariant_check functions when invariant checks are disabled
2013-02-25 04:13:46 +00:00
Arvid Norberg
e45c71dd30
merged sparse file fix from RC_0_16
2013-02-16 08:26:55 +00:00
Arvid Norberg
bff648a89e
update copyright dates and add tool to do so
2012-10-02 03:16:33 +00:00
Arvid Norberg
24186f219a
fix write cache flush issue
2012-05-23 14:59:56 +00:00
Arvid Norberg
19e7546968
fixed low_prio_disk support on linux
2012-05-15 14:13:35 +00:00
Arvid Norberg
ba4c77e7e5
merged FreeBSD fix from RC_0_16
2012-04-15 00:48:44 +00:00
Arvid Norberg
a5a9006014
merged fixes from RC_0_16 into trunk
2012-04-07 00:35:25 +00:00
Arvid Norberg
9024209d51
merged set_settings race condition fix into trunk
2012-04-06 03:02:50 +00:00
Arvid Norberg
7f3aac3959
fix issue with unchoke_slots_limit not preserving its value correctly
2011-12-19 05:53:11 +00:00
Arvid Norberg
cc6bc5ba17
back-out attempt to make disk cache hits faster. it corrupts data
2011-11-28 17:51:14 +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
ef1ee13d58
fix bug in flush_cache_blocks
2011-10-13 02:19:55 +00:00
Arvid Norberg
b078f908f0
one more attempt to fix no-readback cache algorithm
2011-09-27 10:46:56 +00:00
Arvid Norberg
b3d2877274
more no-readback fixes
2011-09-27 07:50:58 +00:00
Arvid Norberg
d8641705e3
commented out expensive invariant check in disk cache
2011-09-27 04:56:57 +00:00
Arvid Norberg
f6b6b57c0e
fix avoid-readback cache algorithm
2011-09-27 04:05:05 +00:00
Arvid Norberg
6271ee58f6
fix overflow issue in default disk write queue size limit
2011-09-14 06:22:45 +00:00
Arvid Norberg
ecba902ff1
fix cache eviction issue in seed_mode
2011-08-07 07:27:38 +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
3e5b165a91
fix invariant check defines
2011-06-21 07:10:54 +00:00
Arvid Norberg
b9e754d14d
mark some invariant checks in disk_io_thread as expensive
2011-06-21 05:10:32 +00:00
Arvid Norberg
f6f516bed0
fix file_storage copy constructor (would break python bindings)
2011-06-06 07:47:29 +00:00
Arvid Norberg
a73960aa5a
support release asserts
2011-05-08 09:04:59 +00:00
Arvid Norberg
e389f5963d
added support for fadvise/F_RDADVISE for improved disk read performance
2011-04-26 07:03:05 +00:00
Arvid Norberg
8e92cad2db
fixed bug in avoid_readback disk cache eviction algorithm
2011-04-17 05:33:33 +00:00
Arvid Norberg
0c28a3e3ca
fixed bug in session::delete_files option to remove_torrent
2011-04-10 20:35:45 +00:00
Arvid Norberg
f3a7d567a4
fix bug in disk thread and torrent abort functions
2011-04-04 02:57:19 +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
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