lkml.org 
[lkml]   [2008]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 5 of 6] hotplug-memory: add section_ops
Dave Hansen wrote:
> On Thu, 2008-04-03 at 17:05 -0700, Jeremy Fitzhardinge wrote:
>
>> Add a per-section "section_ops" structure, allowing each section to have
>> specific functions for onlining and offlining pages within the section.
>> This is used by the Xen balloon driver to make sure that pages are not
>> onlined without some physical memory backing them.
>>
>
> This is kinda a lot of code and mucking around for what we actually get
> out of it, especially since you just condensed down all the actual
> online_page() instances.
>

I agree, but it seemed like the most straightforward and architecturally
cleanest approach to me.

> I think it might just be nicer to have a global list of these handlers
> somewhere. The Xen driver can just say "put me on the list of
> callbacks" and we'll call them at online_page(). I really don't think
> we need to be passing an ops structure around.
>

Yes, but it seems a bit awkward. If we assume that:

1. Xen will be the only user of the hook, and
2. Xen-balloon hotplug is exclusive of real memory hotplug

then I guess its reasonable (though if that's the case it would be
simpler to just put a direct call under #ifdef CONFIG_XEN_BALLOON in there).

But if we think there can be multiple callbacks, and they all get called
on the online of each page, and there can be multiple kinds of hotplug
memory it gets pretty messy. Each has to determine "why was I called on
this page?" and you'd to work out which one actually does the job of
onlining. It just seems cleaner to say "this section needs to be
onlined like this", and there's no ambiguity.

I'm already anticipating using the ops mechanism to support another
class of Xen hotplug memory for managing large pages.

J


\
 
 \ /
  Last update: 2008-04-04 03:17    [W:0.074 / U:0.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site