public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <rth@twiddle.net>
To: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Andrea Arcangeli <andrea@suse.de>, linux-kernel@vger.kernel.org
Subject: Re: alpha iommu fixes
Date: Mon, 21 May 2001 10:53:39 -0700	[thread overview]
Message-ID: <20010521105339.A1907@twiddle.net> (raw)
In-Reply-To: <20010521034726.G30738@athlon.random> <15112.48708.639090.348990@pizda.ninka.net> <20010521105944.H30738@athlon.random> <15112.55709.565823.676709@pizda.ninka.net> <20010521115631.I30738@athlon.random> <15112.59880.127047.315855@pizda.ninka.net> <20010521125032.K30738@athlon.random> <15112.62766.368436.236478@pizda.ninka.net> <20010521131959.M30738@athlon.random> <20010521155151.A10403@jurassic.park.msu.ru>
In-Reply-To: <20010521155151.A10403@jurassic.park.msu.ru>; from ink@jurassic.park.msu.ru on Mon, May 21, 2001 at 03:51:51PM +0400

On Mon, May 21, 2001 at 03:51:51PM +0400, Ivan Kokshaysky wrote:
> I'm unable reproduce it with *8Mb* window, so I'm asking.

Me either.  But Tom Vier, the guy who started this thread
was able to use up the 8MB.  Which is completely believable.

The following should aleviate the situation on these smaller
machines where the direct map does cover all physical memory.
Really, we were failing gratuitously before.

On Tsunami and Titan, espectially with more than 4G ram we
should probably just go ahead and allocate the 512M or 1G
scatter-gather arena.

(BTW, Andrea, it's easy enough to work around the Cypress
problem by marking the last 1M of the 1G arena in use.)


r~



diff -ruNp linux/arch/alpha/kernel/pci_iommu.c linux-new/arch/alpha/kernel/pci_iommu.c
--- linux/arch/alpha/kernel/pci_iommu.c	Fri Mar  2 11:12:07 2001
+++ linux-new/arch/alpha/kernel/pci_iommu.c	Mon May 21 01:25:25 2001
@@ -402,8 +402,20 @@ sg_fill(struct scatterlist *leader, stru
 	paddr &= ~PAGE_MASK;
 	npages = calc_npages(paddr + size);
 	dma_ofs = iommu_arena_alloc(arena, npages);
-	if (dma_ofs < 0)
-		return -1;
+	if (dma_ofs < 0) {
+		/* If we attempted a direct map above but failed, die.  */
+		if (leader->dma_address == 0)
+			return -1;
+
+		/* Otherwise, break up the remaining virtually contiguous
+		   hunks into individual direct maps.  */
+		for (sg = leader; sg < end; ++sg)
+			if (sg->dma_address == 2 || sg->dma_address == -2)
+				sg->dma_address = 0;
+
+		/* Retry.  */
+		return sg_fill(leader, end, out, arena, max_dma);
+	}
 
 	out->dma_address = arena->dma_base + dma_ofs*PAGE_SIZE + paddr;
 	out->dma_length = size;

  reply	other threads:[~2001-05-21 17:54 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-05-18 17:46 alpha iommu fixes Ivan Kokshaysky
2001-05-19  2:34 ` Tom Vier
2001-05-19 10:48   ` Ivan Kokshaysky
2001-05-19 20:58     ` Tom Vier
2001-05-19 13:55 ` Andrea Arcangeli
2001-05-19 19:11   ` Ivan Kokshaysky
2001-05-20  2:40     ` Andrea Arcangeli
2001-05-20 12:12       ` Ivan Kokshaysky
2001-05-20 13:40         ` Andrea Arcangeli
2001-05-20 14:23         ` Gérard Roudier
     [not found]       ` <3B07AF49.5A85205F@uow.edu.au>
2001-05-20 13:49         ` Andrea Arcangeli
2001-05-20 14:05           ` Andrew Morton
2001-05-20 14:33             ` Andrea Arcangeli
2001-05-21  1:01               ` David S. Miller
2001-05-21  1:47                 ` Andrea Arcangeli
2001-05-21  7:05                   ` David S. Miller
2001-05-21  8:59                     ` Andrea Arcangeli
2001-05-21  9:02                       ` David S. Miller
2001-05-21  9:23                         ` Andi Kleen
2001-05-21  9:30                           ` David S. Miller
2001-05-21  9:42                             ` Andi Kleen
2001-05-21 10:00                               ` David S. Miller
2001-05-21 10:27                                 ` Andi Kleen
2001-05-21 10:34                                   ` David S. Miller
2001-05-21 10:42                                     ` Andi Kleen
2001-05-21 10:55                                       ` David S. Miller
2001-05-21 11:08                                         ` Andi Kleen
2001-05-21 11:36                                           ` David S. Miller
2001-05-21 11:41                                             ` Andi Kleen
2001-05-21 22:22                                   ` Jens Axboe
2001-05-21 10:02                               ` Andrea Arcangeli
2001-05-21 10:17                                 ` Alan Cox
2001-05-21  9:56                         ` Andrea Arcangeli
2001-05-21 10:11                           ` David S. Miller
2001-05-21 10:19                             ` David S. Miller
2001-05-21 11:00                               ` Andrea Arcangeli
2001-05-21 11:04                                 ` David S. Miller
2001-05-21 11:27                                   ` Andrea Arcangeli
2001-05-21 12:16                                     ` Peter Rival
2001-05-21 13:55                               ` Jonathan Lundell
2001-05-21 14:17                                 ` Ivan Kokshaysky
2001-05-21 15:47                                   ` Jonathan Lundell
2001-05-22 11:12                               ` Chris Wedgwood
2001-05-22 17:51                                 ` Jonathan Lundell
2001-05-21 10:50                             ` Andrea Arcangeli
2001-05-21 10:59                               ` David S. Miller
2001-05-21 11:19                                 ` Andrea Arcangeli
2001-05-21 11:51                                   ` Ivan Kokshaysky
2001-05-21 17:53                                     ` Richard Henderson [this message]
2001-05-22  0:56                                       ` Andrea Arcangeli
2001-05-22 14:29                                         ` Andrea Arcangeli
2001-05-22 14:44                                           ` Ivan Kokshaysky
2001-05-22 15:00                                             ` Andrea Arcangeli
2001-05-22 20:28                                               ` Richard Henderson
2001-05-22 20:40                                                 ` Jeff Garzik
2001-05-22 20:52                                                   ` Andrea Arcangeli
2001-05-22 20:57                                                   ` Richard Henderson
2001-05-22 21:09                                                   ` Alan Cox
2001-05-22 20:48                                                 ` Jonathan Lundell
2001-05-22 21:02                                                   ` Richard Henderson
2001-05-22 21:10                                                     ` Alan Cox
2001-05-22 21:17                                                     ` Jonathan Lundell
2001-05-22 21:24                                                       ` Alan Cox
2001-05-22 21:34                                                         ` Jonathan Lundell
2001-05-22 21:08                                                 ` Alan Cox
2001-05-22 15:18                                             ` Andrea Arcangeli
2001-05-22 15:55                                               ` Ivan Kokshaysky
2001-05-22 16:06                                                 ` Andrea Arcangeli
2001-05-22 13:22                                       ` Andrea Arcangeli
2001-05-21  9:50                       ` Gerd Knorr
2001-05-21  1:00             ` David S. Miller
2001-05-21  7:47               ` Alan Cox
2001-05-21  7:53                 ` David S. Miller
2001-05-21  8:03                   ` Alan Cox
2001-05-21  8:11                     ` David S. Miller
2001-05-20 16:18           ` Andrea Arcangeli
2001-05-20 16:21             ` Andrew Morton
2001-05-20 16:44               ` Andrea Arcangeli
2001-05-20 16:54                 ` Andrew Morton
2001-05-20 17:12                   ` Andrea Arcangeli
2001-05-21  1:07                     ` David S. Miller
2001-05-21  1:37                       ` Andrea Arcangeli
2001-05-21  6:53                         ` David S. Miller
2001-05-21  7:59                           ` Alan Cox
2001-05-21  8:09                             ` David S. Miller
2001-05-21  8:09                               ` Alan Cox
2001-05-21  8:06                           ` Chris Wedgwood
2001-05-23  0:05                           ` Albert D. Cahalan
2001-05-22 13:11                       ` Pavel Machek
2001-05-22 23:02                         ` David S. Miller
2001-05-20 17:16             ` Jeff Garzik
2001-05-20 17:37               ` Andrea Arcangeli
2001-05-21  1:03             ` David S. Miller
2001-05-21  1:58               ` Richard Henderson
2001-05-20  1:11 ` Richard Henderson
2001-05-20 12:05   ` Ivan Kokshaysky
2001-05-21  0:37     ` Richard Henderson

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=20010521105339.A1907@twiddle.net \
    --to=rth@twiddle.net \
    --cc=andrea@suse.de \
    --cc=ink@jurassic.park.msu.ru \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox