Re: mainline 4.14-rc4: renesas_sdhi_internal_dmac ee100000.sd: swiotlb buffer is full?

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

 



On Mon, Oct 16, 2017 at 2:07 PM, Geert Uytterhoeven
<geert@xxxxxxxxxxxxxx> wrote:
> On Mon, Oct 16, 2017 at 1:41 PM, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote:
>> On Mon, Oct 16, 2017 at 11:02 AM, Geert Uytterhoeven
>> <geert@xxxxxxxxxxxxxx> wrote:
>>>> IIUC,
>>>> - Since the MMC_BOUNCE disappeared in v4.14-rc1, the MMC core will request a command with 64kbyte+ size.
>>>>  - So, swiotlb will got request 64kbyte+ size. This is different with previous version.
>>
>> Other people reported problems with that. Sorry about this...
>>
>> This problem should be solved by upstream
>> commit de3ee99b097dd51938276e3af388cd4ad0f2750a
>> "mmc: Delete bounce buffer handling"
>>
>> I just killed off the bounce buffers so they can't hurt anyone anymore.
>>
>> Can you check that you have this patch in your tree?
>
> Given Dirk saw the issue with v4.14-rc4, I'm afraid that patch is already
> included :-(

So the first issue is definately gone.

Then it seems the driver is specifying to high ->max_seg_size
since the buffer cannot be mapped?

Unless you're using ADMA drivers/mmc/host/sdhci.c sets it as:
mmc->max_seg_size = mmc->max_req_size;

And:
mmc->max_req_size = 524288;

>> renesas_sdhi_internal_dmac ee100000.sd: swiotlb_tbl_map_single: test:
>> size modified to 524288 bytes
>> renesas_sdhi_internal_dmac ee100000.sd: swiotlb buffer is full (sz:
>> 524288 bytes)

So if your driver cannot handle 524288 bytes, why is it saying it can
handle 524288 bytes?

The MMC core will believe the claim is true, I guess maybe something
in the current tree (such as coalesced blocks or whatever) is finally
making this size of requests hit the driver (which is a good thing...)
just that it was never doing that before and now it turns out it can't
really handle that because of how the memory architecture or something
works.

I guess you need to figure out how big requests/segments this hardware
can really handle and pass that to mmc->mas_req_size, mmc->max_seg_size.

Sorry if my reasoning is dumb... need more coffee.

Yours,
Linus Walleij



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux