Hello, I have summarized the topics for the IO controller mini-summit and written the ideas seen in the mailing list. - The place where IO controller should be implemented - Block layer in conjunction with the IO scheduler - Common layer right above the IO scheduler - CFQ enhancement. - Both block and common layer, users can select whichever controller they want. - VFS layer - What kind of bandwidth control policies are needed? - Proportional weight - Enforcing upper limit - Minimum bandwidth guarantee - How to handle buffered writes? - Add dirt-ratio in the memory controller - Add bufferred-write-cgroup to track buffered writebacks - A per group per bdi pdflush threads - Who should be charged for swap activity? - who requests a page. - who has a page. - All swap activities are charged to the root group. And I would also like to discuss about the followings. - Extensions of struct bio - Make a bio point to the io_context of a process which creates the I/O request. This allows to pass the IO scheduling class and priority information to IO controller even if the IO is submitted by another process which does not create the request, such as a worker thread. - Add a new flag to struct bio to identify the bio as urgent. This gives IO controller a chance to handle the bio as high priority. This flag should be set if the bio is created for the page-out operation. - Common test methods to verify the functionality of IO controller. Please give me comments and suggestions. I may be missing or misunderstanding something. Thanks, Ryo Tsuruta -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel