WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [PATCH 14/15] [swiotlb] Move initialization (swiotlb_ini

To: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH 14/15] [swiotlb] Move initialization (swiotlb_init) and its friends in swiotlb-default.c
From: Chris Wright <chrisw@xxxxxxxxxxxx>
Date: Tue, 19 Jan 2010 10:55:19 -0800
Cc: fujita.tomonori@xxxxxxxxxxxxx, jeremy@xxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx, Ian.Campbell@xxxxxxxxxxxxx, joerg.roedel@xxxxxxx, Chris Wright <chrisw@xxxxxxxxxxxx>, iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx, dwmw2@xxxxxxxxxxxxx, alex.williamson@xxxxxx
Delivery-date: Tue, 19 Jan 2010 10:56:06 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20100119174510.GM11986@xxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1263510064-16788-8-git-send-email-konrad.wilk@xxxxxxxxxx> <1263510064-16788-9-git-send-email-konrad.wilk@xxxxxxxxxx> <1263510064-16788-10-git-send-email-konrad.wilk@xxxxxxxxxx> <1263510064-16788-11-git-send-email-konrad.wilk@xxxxxxxxxx> <1263510064-16788-12-git-send-email-konrad.wilk@xxxxxxxxxx> <1263510064-16788-13-git-send-email-konrad.wilk@xxxxxxxxxx> <1263510064-16788-14-git-send-email-konrad.wilk@xxxxxxxxxx> <1263510064-16788-15-git-send-email-konrad.wilk@xxxxxxxxxx> <20100115021453.GH6021@xxxxxxxxxxxxxxxxxxxx> <20100119174510.GM11986@xxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.19 (2009-01-05)
* Konrad Rzeszutek Wilk (konrad.wilk@xxxxxxxxxx) wrote:
> > > +void __init
> > > +swiotlb_init(int verbose)
> > > +{
> > > + swiotlb_register_engine(&swiotlb_ops);
> > > + swiotlb_init_with_default_size(&swiotlb_ops, 64 * (1<<20),
> > > +                                 verbose);       /* default to 64MB */
> > > +}
> > 
> > I'd expect the swiotlb-default file to have only private impl. of the
> > swiotlb_engine.  Shouldn't this and the init stay in swiotlb.c?  Also,
> 
> Hmm, were you thinking that it might make sense to pass in
> a swiotlb_ops to swiotlb_init so that it can make the right assignments?

Yeah, something like that.

> The reason why I stuck here was that the swiotlb_ops needed to be
> visible to this function, and having it in swiotlb.c would mean it must
> now include the header definition for swiotlb-defualt.h.

And part of that need is because the allocator (effectively
common/global) is writing to impl. private data, like ->nslabs.  But if
you move that back, then this may not be an issue.

> > would you ever call swiotlb_init w/out register_engine, why not move
> > register to the swiotlb_init?
> 
> In essence combine swiotlb_register_engine with 
> swiotlb_init_with_default_size?

Yep.

> There would  still be a need for late call mechanism. 
> Perhaps having two variants of swiotlb_init?: swiotlb_early_init(struct
> swiotlb_engine *swiotlb_ops) and swiotlb_late_init(struct swiotlb_engine
> *swiotlb_ops)?

That's basically what we have now, swiotlb{,_late}_init_with_default_size,
so seems reasonable to me.

> Or perhaps just pass in an argument: swiotlb_init(int late)?
> 
> Furthermore have this new swiotlb_init detect if some of the fields
> (start ,end, overflow_buffer) have been allocated and if so skip the
> default allocation altogether?

That would keep the allocate, ->release, allocate cycle from happening
(which seems odd when it's the same sizes and same core allocation).

Part of why I thought there was too much moved into the impl. private
engine structure.

thanks,
-chris

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>