看板 DFBSD_kernel 關於我們 聯絡資訊
Hello again, Thanks to Justin, Alex and Venkatesh's help, I have set up a VM running DragonFlyBSD now and I looked into codes reside in sys/kern/kern_dsched.c, sys/kern/dsched/fq/ and came up with some questions: 1. The fq scheduler seems to create one thread for each disk, but I found a piece of comment at fq_core.c:114 indicating that there may be more than one tdio assigned to a diskctx. I could not find a chance to create such threads when thinking through the whole procedure of scheduling: - The fq_prepare() function creates a dispatcher thread when attaching to a disk - An io request comes from higher level, and invokes dsched_queue() to find a proper thread to handle this and then calls fq_queue() which may dispatch the request or insert it into the thread's queue. Note that there is only one thread related is that dispatcher. - The dispatcher thread checks the queue when the disk is idle, and tries to dispatch the request in the queue. 2. The 'fair share' should relate to processes sending io requests, but I have no idea on how the implementation in fq_core.c works. Each process should have its own queue and a budgets to consume but the queue and budgets seem to be per-thread. If there is only one such thread for each disk, then the scheduler acts like a FIFO queue. 3. Is it possible and proper to implement disk's arm scheduling in dsched? e.g, a queue sorted by arm position to increase the throughput of FQ scheduler. There must be something wrong in my perception above, because the procedure is different from the one depicted in sys/kern/dsched/fq/flow.txt And another questions about the 'Implement further dsched disk scheduling policies' on GSoC idea list: DragonFlyBSD has a FQ scheduler right now, but why another policy to improve interactivity, since the 'fair' guarantees a not bad interactivity? And the final question: Justin mentioned an application form on GSoC site, but according to Google's plan, students' handing in their applications starts at March 29. Should I send an application to the community in advance and then another to Google after March 29? Thanks Brills Peng