From: Rik van Riel <riel@redhat.com>
To: Christoph Hellwig <hch@infradead.org>,
Andi Kleen <andi@firstfloor.org>, Rik van Riel <riel@redhat.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
andrew.vasquez@qlogic.com
Subject: Re: [PATCH] quiet down swiotlb warnings
Date: Fri, 01 Jun 2007 14:18:46 -0400 [thread overview]
Message-ID: <46606306.2060203@redhat.com> (raw)
In-Reply-To: <20070601181225.GA16460@infradead.org>
[-- Attachment #1: Type: text/plain, Size: 878 bytes --]
Christoph Hellwig wrote:
> On Fri, Jun 01, 2007 at 09:01:45PM +0200, Andi Kleen wrote:
>> Bad idea imho. swiotlb mappings should always lead to printk by default
>> because it is pretty dangerous.
>>
>> One possible solution for this I could think of would be to define a
>> new pci_map_sg_couldfail() or similar that doesn't warn and use a weak
>> fallback just calling pci_map_sg on other IOMMU implementations.
>
> pci_map_sg is defined to be failing when running out of ressources, which
> is perfectly fine. We don't printk on kmalloc failures either (actually
> in some cases which is highly annoying and leads people to stick a
> __GFP_NOWARN into various places)
Andi, I could see your "pretty dangerous" case applying
when do_panic is set, but not in any other circumstances.
Does the patch below look better to you?
Signed-off-by: Rik van Riel <riel@redhat.com>
[-- Attachment #2: 2.6.21-swiotlb-quiet.patch --]
[-- Type: text/x-patch, Size: 1045 bytes --]
--- linux-2.6.21.noarch/lib/swiotlb.c.quiet 2007-06-01 13:23:04.000000000 -0400
+++ linux-2.6.21.noarch/lib/swiotlb.c 2007-06-01 14:18:26.000000000 -0400
@@ -505,6 +505,7 @@ swiotlb_free_coherent(struct device *hwd
static void
swiotlb_full(struct device *dev, size_t size, int dir, int do_panic)
{
+ static int warnings = 0;
/*
* Ran out of IOMMU space for this operation. This is very bad.
* Unfortunately the drivers cannot handle this operation properly.
@@ -512,8 +513,9 @@ swiotlb_full(struct device *dev, size_t
* When the mapping is small enough return a static buffer to limit
* the damage, or panic when the transfer is too big.
*/
- printk(KERN_ERR "DMA: Out of SW-IOMMU space for %zu bytes at "
- "device %s\n", size, dev ? dev->bus_id : "?");
+ if (do_panic || ++warnings < 5)
+ printk(KERN_ERR "DMA: Out of SW-IOMMU space for %zu bytes at "
+ "device %s\n", size, dev ? dev->bus_id : "?");
if (size > io_tlb_overflow && do_panic) {
if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL)
next prev parent reply other threads:[~2007-06-01 18:19 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-01 17:30 [PATCH] quiet down swiotlb warnings Rik van Riel
2007-06-01 19:01 ` Andi Kleen
2007-06-01 18:12 ` Christoph Hellwig
2007-06-01 18:18 ` Rik van Riel [this message]
2007-06-01 19:37 ` Andi Kleen
2007-06-01 19:38 ` Rik van Riel
2007-06-01 19:47 ` Andi Kleen
2007-06-01 20:00 ` Andrew Vasquez
2007-06-01 20:14 ` Andi Kleen
2007-06-01 20:20 ` Rik van Riel
2007-06-01 20:26 ` Andi Kleen
2007-06-02 15:21 ` Muli Ben-Yehuda
2007-06-02 16:47 ` Andi Kleen
2007-06-01 19:57 ` Christoph Hellwig
2007-06-01 18:16 ` Andrew Vasquez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=46606306.2060203@redhat.com \
--to=riel@redhat.com \
--cc=andi@firstfloor.org \
--cc=andrew.vasquez@qlogic.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.