linux-mips
[Top] [All Lists]

Re: [PATCH v3] modify the IO_TLB_SEGSIZE and IO_TLB_DEFAULT_SIZE configu

To: "Wang, Xiaoming" <xiaoming.wang@intel.com>
Subject: Re: [PATCH v3] modify the IO_TLB_SEGSIZE and IO_TLB_DEFAULT_SIZE configurable as flexible requirement about SW-IOMMU.
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Wed, 18 Feb 2015 12:35:39 -0500
Cc: "ralf@linux-mips.org" <ralf@linux-mips.org>, "boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>, "david.vrabel@citrix.com" <david.vrabel@citrix.com>, "linux-mips@linux-mips.org" <linux-mips@linux-mips.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "akpm@linux-foundation.org" <akpm@linux-foundation.org>, "linux@horizon.com" <linux@horizon.com>, "lauraa@codeaurora.org" <lauraa@codeaurora.org>, "heiko.carstens@de.ibm.com" <heiko.carstens@de.ibm.com>, "d.kasatkin@samsung.com" <d.kasatkin@samsung.com>, "takahiro.akashi@linaro.org" <takahiro.akashi@linaro.org>, "chris@chris-wilson.co.uk" <chris@chris-wilson.co.uk>, "pebolle@tiscali.nl" <pebolle@tiscali.nl>, "Liu, Chuansheng" <chuansheng.liu@intel.com>, "Zhang, Dongxing" <dongxing.zhang@intel.com>
In-reply-to: <FA47D36D6EC9FE4CB463299737C09B9901D00B41@shsmsx102.ccr.corp.intel.com>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1424054298-17083-1-git-send-email-xiaoming.wang@intel.com> <20150216221322.GA7442@l.oracle.com> <FA47D36D6EC9FE4CB463299737C09B9901D00B41@shsmsx102.ccr.corp.intel.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.23 (2014-03-12)
> > >  static int __init
> > > +setup_io_tlb_segsize(char *str)
> > > +{
> > > + get_option(&str, &io_tlb_segsize);
> > > + return 0;
> > > +}
> > > +__setup("io_tlb_segsize=", setup_io_tlb_segsize);
> > 
> > This should be folded in swiotlb=XYZ parsing please.
> > 
> I am not very clear about this comment.
> 1,    Do you mean it should use early_param instead of __setup?
> As I known early_param  can't help to assign the parameter that we changed at
> kernel cmdline  because we have the default value here.
> int io_tlb_segsize = 128;
> unsigned long io_tlb_default_size = (64UL<<20);

The code in 'setup_io_tlb_npages' - which is run when 'swiotlb=' parameter
is passed on the command line, can be modified to parse other extra
values. That is what I meant.

As in right now it assumes you want only to change the size of the
IOTLB buffer (64MB default). You can make the code be smarter and
accept two values, say:

  32768,128

Which should make the size by the default of 64MB with an io_tlb_segsize of 128.

Or you can do:

  32768,256

for also an 64MB with a io_tlb_segsize of 256 instead.


This offers users to manipulate these values as well as the initial
arch code which can modify 'io_tlb_nslabs' and 'io_tlb_segsize' during
bootup to their preferred values.

> 2,    Or do you mean use iotlbsegsize instead of io_tlb_segsize?

No. Just fold it all under 'swiotlb' parameter please.
> 
> > Also you will need to update the Documentaiton/kernel-parameters.txt file.

And naturally that will have to be updated.

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