Re: [PATCH v3] modify the IO_TLB_SEGSIZE and IO_TLB_DEFAULT_SIZE configurable as flexible requirement about SW-IOMMU.

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

 



> > >  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.





[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux