[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[dm-devel] IO controller Mini-Summit 2009



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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]