RE: [Xen-devel] [PATCH v4] modify the IO_TLB_SEGSIZE and IO_TLB_DEFAULT_SIZE configurable as flexible requirement about SW-IOMMU.

From: Jan Beulich
Date: Wed Feb 18 2015 - 04:35:01 EST


>>> On 18.02.15 at 10:09, <xiaoming.wang@xxxxxxxxx> wrote:
>> From: Jan Beulich [mailto:JBeulich@xxxxxxxx]
>> Sent: Tuesday, February 17, 2015 6:09 PM
>> >>> On 17.02.15 at 07:51, <xiaoming.wang@xxxxxxxxx> wrote:
>> > --- a/Documentation/kernel-parameters.txt
>> > +++ b/Documentation/kernel-parameters.txt
>> > @@ -3438,10 +3438,12 @@ bytes respectively. Such letter suffixes can
>> > also be entirely omitted.
>> > it if 0 is given (See
>> Documentation/cgroups/memory.txt)
>> >
>> > swiotlb= [ARM,IA-64,PPC,MIPS,X86]
>> > - Format: { <int> | force }
>> > + Format: { <int> | force | <int> | <int>}
>> > <int> -- Number of I/O TLB slabs
>> > force -- force using of bounce buffers even if they
>> > wouldn't be automatically used by the kernel
>> > + <int> -- Maximum allowable number of contiguous
>> slabs to map
>> > + <int> -- The size of SW-MMU mapped.
>>
>> This makes no sense - the new numbers added aren't position independent
>> (nor were the previous <int> and "force").
>>
> Use "," can separate them one by one.
> We do it at lib/swiotlb.c

Right, but the documentation above doesn't say so.

>> Also you are (supposedly) removing all uses of IO_TLB_DEFAULT_SIZE, yet
>> you don't seem to remove the definition itself.
>>
> I have change all uses of IO_TLB_DEFAULT_SIZE to io_tlb_default_size in
> lib/swiotlb.c

Then are there any left elsewhere? If not, again - why don't you
remove the definition of IO_TLB_DEFAULT_SIZE?

>> Finally - are arbitrary numbers really okay for the newly added command line
>> options? I.e. shouldn't you add some checking of their validity?
>>
> I have validity these code is OK.
> Example:
> BOARD_KERNEL_CMDLINE += swiotlb=, ,512,268435456
> Io_tlb_segsize has been changed from 128 to 512
> Io_tlb_default_size has been changed from 64M to 268435456 (256M)

I specifically said "arbitrary numbers", which in particular includes
zero and non-power-of-2 values. If there are any restrictions on
which numbers can validly be passed here (and it very much looks
like there are), such restrictions should be enforced imo.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/