Review Request: Patch to address job queueing and ioslave spawn limits in KIO::Scheduler...
adawit at kde.org
adawit at kde.org
Sat Dec 5 10:13:19 GMT 2009
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/2323/
-----------------------------------------------------------
Review request for kdelibs.
Summary
-------
This patch is intended to address the issue of job queueing and enforcement of per host connection limits, and hence ioslaves spawned, in KIO::Scheduler. Right now KIO::Scheduler only reuses idle ioslaves and does not by default provide job queueing. It simply spawns as many ioslaves (read: connections/sockets) as there are jobs if it cannot find an idle one to reuse. This default behavior has been the cause of more than a few issues that have been amply disscused in other threads recently:
http://lists.kde.org/?t=125857293400001&r=1&w=2
http://lists.kde.org/?t=125149495900004&r=1&w=2
http://lists.kde.org/?t=124531188100002&r=1&w=2
Based on the feedback I received from the discussions in the threads listed above, I have gone ahead and made the necessary modifications hanges to address the concerns that were raised there. Specifically, this version addresses the potential deadlock conditions created with the first patch as pointed out by David. As such I would like to commit these changes into trunk so that it can receive wider testing. As a precaution, the patch leaves out the portion of code that makes it the default for all KIO job requests. Instead only jobs scheduled through implicit calls to KIO::Scheduler::scheduleJob will be affected by this change. This would mean only few components such as the newly added kdewebkit will be impacted and serve as the test bed for the much needed changes that will surely come to KIO::Scheduler in the future (read Hartmetz's response in the first thread).
Diffs
-----
/trunk/KDE/kdelibs/kdecore/sycoca/kprotocolinfo.h 1058764
/trunk/KDE/kdelibs/kdecore/sycoca/kprotocolinfo.h 1058764
/trunk/KDE/kdelibs/kdecore/sycoca/kprotocolinfo.cpp 1058764
/trunk/KDE/kdelibs/kdecore/sycoca/kprotocolinfo.cpp 1058764
/trunk/KDE/kdelibs/kdecore/sycoca/kprotocolinfo_p.h 1058764
/trunk/KDE/kdelibs/kdecore/sycoca/kprotocolinfo_p.h 1058764
/trunk/KDE/kdelibs/kdecore/sycoca/ksycoca.cpp 1058764
/trunk/KDE/kdelibs/kdecore/sycoca/ksycoca.cpp 1058764
/trunk/KDE/kdelibs/kio/kio/job.cpp 1058764
/trunk/KDE/kdelibs/kio/kio/job_p.h 1058764
/trunk/KDE/kdelibs/kio/kio/scheduler.cpp 1058764
Diff: http://reviewboard.kde.org/r/2323/diff
Testing
-------
Been using this patch daily with the stable KDE 4.3 branch since its first creation a couple of months back.
Thanks,
adawit
More information about the kde-core-devel
mailing list