From: FUJITA Tomonori <tomof@acm.org>
To: just.for.lkml@googlemail.com
Cc: tomof@acm.org, akpm@linux-foundation.org, jarkao2@gmail.com,
herbert@gondor.apana.org.au, linux-kernel@vger.kernel.org,
neilb@suse.de, bfields@fieldses.org, netdev@vger.kernel.org,
tom@opengridcomputing.com, fujita.tomonori@lab.ntt.co.jp
Cc: fujita.tomonori@lab.ntt.co.jp
Subject: Re: 2.6.24-rc6-mm1
Date: Sun, 6 Jan 2008 20:23:14 +0900 [thread overview]
Message-ID: <20080106202616Z.tomof@acm.org> (raw)
In-Reply-To: <64bb37e0801060241o2c6d8172r73b69291fce76ce1@mail.gmail.com>
On Sun, 6 Jan 2008 11:41:10 +0100
"Torsten Kaiser" <just.for.lkml@googlemail.com> wrote:
> On Jan 6, 2008 4:28 AM, FUJITA Tomonori <tomof@acm.org> wrote:
> > On Sat, 5 Jan 2008 17:25:24 -0800
> > Andrew Morton <akpm@linux-foundation.org> wrote:
> > > On Sat, 5 Jan 2008 23:10:17 +0100 "Torsten Kaiser" <just.for.lkml@googlemail.com> wrote:
> > > > But the cause of my mail is the following question:
> > > > Regarding my "iommu-sg-merging-patches are new in -rc3-mm and could be
> > > > the cause"-suspicion I looked at these patches and came across these
> > > > hunks:
> > > >
> > > > This is removed from arch/x86/lib/bitstr_64.c:
> > > > -/* Find string of zero bits in a bitmap */
> > > > -unsigned long
> > > > -find_next_zero_string(unsigned long *bitmap, long start, long nbits, int len)
> > > > -{
> > > > - unsigned long n, end, i;
> > > > -
> > > > - again:
> > > > - n = find_next_zero_bit(bitmap, nbits, start);
> > > > - if (n == -1)
> > > > - return -1;
> > > > -
> > > > - /* could test bitsliced, but it's hardly worth it */
> > > > - end = n+len;
> > > > - if (end > nbits)
> > > > - return -1;
> > > > - for (i = n+1; i < end; i++) {
> > > > - if (test_bit(i, bitmap)) {
> > > > - start = i+1;
> > > > - goto again;
> > > > - }
> > > > - }
> > > > - return n;
> > > > -}
> > > >
> > > > This is added to lib/iommu-helper.c:
> > > > +static unsigned long find_next_zero_area(unsigned long *map,
> > > > + unsigned long size,
> > > > + unsigned long start,
> > > > + unsigned int nr)
> > > > +{
> > > > + unsigned long index, end, i;
> > > > +again:
> > > > + index = find_next_zero_bit(map, size, start);
> > > > + end = index + nr;
> > > > + if (end > size)
> > > > + return -1;
> > > > + for (i = index + 1; i < end; i++) {
> > > > + if (test_bit(i, map)) {
> > > > + start = i+1;
> > > > + goto again;
> > > > + }
> > > > + }
> > > > + return index;
> > > > +}
> > > >
> > > > The old version checks, if find_next_zero_bit returns -1, the new
> > > > version doesn't do this.
> > > > Is this intended and can find_next_zero_bit never fail?
> > > > Hmm... but in the worst case it should only loop forever if I'm
> > > > reading this right (index = -1 => for-loop counts from 0 to nr, if any
> > > > bit is set it will jump to "again:" and if the next call to
> > > > find_next_zero_bit also fails, its an endless loop)
> >
> > find_next_zero_bit returns -1?
> >
> > It seems that x86_64 doesn't.
>
> I'm sorry. I didn't look into find_next_zero_bit, I only noted that
> the old version did check for -1 and the new one didn't.
> Obviously the old check was superfluous.
>
> > POWER and SPARC64 IOMMUs use
> > find_next_zero_bit too but both doesn't check if find_next_zero_bit
> > returns -1. If find_next_zero_bit fails, it returns size. So it
> > doesn't leads to an endless loop.
>
> Yes, this can't happen. It was a wrong assumption on my part.
>
> > But this patch has other bugs that break POWER IOMMUs.
> >
> > If you use the IOMMUs on POWER, please try the following patch:
>
> I'm using CONFIG_GART_IOMMU=y on x86_64.
>
> > http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg12702.html
>
> I also noted the line "index = (index + align_mask) & ~align_mask;" in
> iommu_area_alloc() and didn't understand what this was trying to do
> and how this should work, but as arch/x86/kernel/pci-gart_64.c always
> uses 0 as align_mask I just ignored it.
Yeah, it's for only POWER IOMMUs. It's meaningless for gart and
calgary IOMMUs.
> I will applie your patch and see if this hunk from
> find_next_zero_area() makes a difference:
>
> end = index + nr;
> - if (end > size)
> + if (end >= size)
> return -1;
> - for (i = index + 1; i < end; i++) {
> + for (i = index; i < end; i++) {
> if (test_bit(i, map)) {
The patch should not make a difference for X86_64.
Can you try the patch to revert my IOMMU changes?
http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg12694.html
next prev parent reply other threads:[~2008-01-06 11:23 UTC|newest]
Thread overview: 160+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-23 7:30 2.6.24-rc6-mm1 Andrew Morton
2007-12-23 11:04 ` 2.6.24-rc6-mm1 Ingo Molnar
2007-12-23 11:10 ` 2.6.24-rc6-mm1 Ingo Molnar
2007-12-23 11:34 ` 2.6.24-rc6-mm1 Andrew Morton
2007-12-23 11:57 ` 2.6.24-rc6-mm1 Ingo Molnar
2007-12-23 12:12 ` 2.6.24-rc6-mm1 Christoph Hellwig
2007-12-23 12:35 ` 2.6.24-rc6-mm1 Rafael J. Wysocki
2007-12-23 13:00 ` 2.6.24-rc6-mm1 Ingo Molnar
2007-12-23 13:48 ` 2.6.24-rc6-mm1 Rafael J. Wysocki
2007-12-23 13:53 ` 2.6.24-rc6-mm1 Rafael J. Wysocki
2007-12-23 20:09 ` 2.6.24-rc6-mm1 Sam Ravnborg
2007-12-23 22:44 ` 2.6.24-rc6-mm1 Rafael J. Wysocki
2008-01-02 20:05 ` [patch] x86 compat_binfmt_elf, Makefile fixes (was: Re: 2.6.24-rc6-mm1) Ingo Molnar
2008-01-02 20:32 ` Rafael J. Wysocki
2008-01-02 20:43 ` Ingo Molnar
2007-12-23 23:09 ` 2.6.24-rc6-mm1 H. Peter Anvin
2007-12-23 16:27 ` 2.6.24-rc6-mm1 Torsten Kaiser
2007-12-23 20:39 ` 2.6.24-rc6-mm1 Andrew Morton
2007-12-27 11:42 ` 2.6.24-rc6-mm1 Torsten Kaiser
2007-12-27 14:30 ` 2.6.24-rc6-mm1 Torsten Kaiser
2007-12-28 22:53 ` 2.6.24-rc6-mm1 Torsten Kaiser
2007-12-28 23:07 ` 2.6.24-rc6-mm1 Andrew Morton
2007-12-29 16:51 ` 2.6.24-rc6-mm1 Torsten Kaiser
2007-12-30 1:30 ` 2.6.24-rc6-mm1 Herbert Xu
2007-12-30 3:34 ` 2.6.24-rc6-mm1 Torsten Kaiser
2007-12-30 5:41 ` 2.6.24-rc6-mm1 Randy Dunlap
2007-12-31 20:15 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-01 12:04 ` 2.6.24-rc6-mm1 Herbert Xu
2008-01-01 12:59 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-01 18:29 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-02 18:29 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-02 21:51 ` 2.6.24-rc6-mm1 Herbert Xu
2008-01-02 21:57 ` 2.6.24-rc6-mm1 J. Bruce Fields
2008-01-03 5:02 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-03 15:37 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-03 18:52 ` 2.6.24-rc6-mm1 J. Bruce Fields
2008-01-04 10:23 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-04 13:30 ` 2.6.24-rc6-mm1 Jarek Poplawski
2008-01-04 15:21 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-04 21:24 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-05 0:07 ` 2.6.24-rc6-mm1 Jarek Poplawski
2008-01-05 8:01 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-05 10:13 ` 2.6.24-rc6-mm1 Jarek Poplawski
2008-01-05 14:52 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-05 22:10 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-06 1:25 ` 2.6.24-rc6-mm1 Andrew Morton
2008-01-06 3:28 ` 2.6.24-rc6-mm1 FUJITA Tomonori
2008-01-06 10:41 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-06 11:23 ` FUJITA Tomonori [this message]
2008-01-06 11:35 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-06 13:33 ` 2.6.24-rc6-mm1 FUJITA Tomonori
2008-01-06 20:03 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-07 6:16 ` 2.6.24-rc6-mm1 FUJITA Tomonori
2008-01-08 15:59 ` 2.6.24-rc6-mm1 Ingo Molnar
2008-01-08 23:57 ` 2.6.24-rc6-mm1 FUJITA Tomonori
2008-01-09 0:27 ` 2.6.24-rc6-mm1 Andrew Morton
2008-01-09 0:54 ` 2.6.24-rc6-mm1 FUJITA Tomonori
2008-01-09 1:07 ` 2.6.24-rc6-mm1 Andrew Morton
2008-01-09 9:04 ` 2.6.24-rc6-mm1 Jarek Poplawski
2008-01-10 0:54 ` 2.6.24-rc6-mm1 FUJITA Tomonori
2008-01-25 21:06 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-06 3:16 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-06 8:27 ` 2.6.24-rc6-mm1 Jarek Poplawski
2008-01-06 10:30 ` 2.6.24-rc6-mm1 Torsten Kaiser
2008-01-06 14:52 ` 2.6.24-rc6-mm1 Jarek Poplawski
2007-12-30 21:24 ` 2.6.24-rc6-mm1 J. Bruce Fields
2007-12-30 21:35 ` 2.6.24-rc6-mm1 Torsten Kaiser
2007-12-31 13:17 ` 2.6.24-rc6-mm1 Torsten Kaiser
2007-12-23 22:54 ` 2.6.24-rc6-mm1: suspend broken on HP nx6325 due to cpufreq changes Rafael J. Wysocki
2007-12-23 22:50 ` Andrew Morton
2007-12-23 22:56 ` Dave Jones
2007-12-24 11:21 ` Takashi Iwai
2007-12-24 14:13 ` Rafael J. Wysocki
2007-12-25 21:51 ` 2.6.24-rc6-mm1 Andreas Mohr
2007-12-26 5:43 ` 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage Valdis.Kletnieks
2007-12-26 7:34 ` James Morris
2007-12-26 8:25 ` Valdis.Kletnieks
2007-12-26 8:52 ` James Morris
2007-12-26 14:16 ` James Morris
2007-12-26 22:46 ` Andrew Morton
2007-12-26 23:39 ` 2.6.24-rc6-mm1 - e1000 breakage James Morris
2007-12-26 16:44 ` 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage Valdis.Kletnieks
2007-12-26 8:37 ` 2.6.24-rc6-mm1 Dave Young
2007-12-26 12:29 ` 2.6.24-rc6-mm1: some section mismatches on sparc64 Mariusz Kozlowski
2007-12-26 12:29 ` Mariusz Kozlowski
2007-12-27 3:05 ` David Miller
2007-12-27 3:05 ` David Miller
2007-12-28 23:22 ` Adrian Bunk
2007-12-28 23:22 ` Adrian Bunk
2007-12-29 8:14 ` David Miller
2007-12-29 8:14 ` David Miller
2007-12-29 8:27 ` David Miller
2007-12-29 8:27 ` David Miller
2007-12-29 8:48 ` Adrian Bunk
2007-12-29 8:48 ` Adrian Bunk
2007-12-29 8:54 ` David Miller
2007-12-29 8:54 ` David Miller
2007-12-29 9:06 ` Adrian Bunk
2007-12-29 9:06 ` Adrian Bunk
2007-12-29 9:18 ` David Miller
2007-12-29 9:18 ` David Miller
2007-12-29 9:53 ` Adrian Bunk
2007-12-29 9:53 ` Adrian Bunk
2007-12-29 9:15 ` David Miller
2007-12-29 9:15 ` David Miller
2007-12-27 2:21 ` 2.6.24-rc6-mm1: __raw_spin_is_contended undefined Joseph Fannin
2007-12-27 5:21 ` Nick Piggin
2007-12-27 6:04 ` 2.6.24-rc6-mm1 - drivers/char/tpm/tpm_bios.c oddness? Valdis.Kletnieks
2007-12-27 8:49 ` 2.6.24-rc6-mm1 Kernel panics at different functions () Kamalesh Babulal
2007-12-27 9:54 ` Andrew Morton
2007-12-27 10:25 ` Kamalesh Babulal
2007-12-28 9:11 ` Kamalesh Babulal
2007-12-28 13:03 ` Dhaval Giani
2007-12-27 9:16 ` 2.6.24-rc6-mm1 - power_supply driver dmesg weirdness? Valdis.Kletnieks
2007-12-27 17:54 ` 2.6.24-rc6-mm1 - crash in tick_sched_timer/update_process_times Valdis.Kletnieks
2007-12-28 7:34 ` Andrew Morton
2007-12-29 16:02 ` Valdis.Kletnieks
2007-12-31 18:05 ` [PATCH -mm] crypto: scatterwalk.h needs sched.h Randy Dunlap
2007-12-31 22:31 ` Herbert Xu
2007-12-31 18:05 ` [PATCH -mm] driver core: build with SYSFS=n Randy Dunlap
2007-12-31 18:18 ` 2.6.24-rc6-mm1 (build problem: v4l / i2c) Randy Dunlap
2007-12-31 19:01 ` [v4l-dvb-maintainer] " Michael Krufky
2007-12-31 19:08 ` Michael Krufky
2007-12-31 18:18 ` 2.6.24-rc6-mm1 (build problem: gpio_keys) Randy Dunlap
2007-12-31 18:40 ` David Brownell
2007-12-31 19:10 ` [PATCH -mm] gpio: fix x86 build problem: gpio_keys Randy Dunlap
2008-01-01 15:32 ` Ingo Molnar
2007-12-31 18:19 ` 2.6.24-rc6-mm1 (build problem: gpio/W1) Randy Dunlap
2008-01-05 15:29 ` Evgeniy Polyakov
2008-01-05 16:16 ` Ville Syrjälä
2008-01-05 17:18 ` Randy Dunlap
2007-12-31 20:11 ` 2.6.24-rc6-mm1 (driver core/sysfs) Randy Dunlap
2008-01-12 1:05 ` Greg KH
2008-01-14 16:11 ` [patch] auto-qa Kconfig Ingo Molnar
2008-01-15 22:13 ` Pavel Machek
2008-01-06 10:03 ` 2.6.24-rc6-mm1: sparc64: undefined reference to `vmemmap_table' Mariusz Kozlowski
2008-01-06 10:03 ` Mariusz Kozlowski
2008-01-06 10:15 ` Andrew Morton
2008-01-06 10:15 ` Andrew Morton
2008-01-07 1:18 ` David Miller
2008-01-07 1:18 ` David Miller
2008-01-07 13:50 ` [PATCH -mm/x86] revert i386: handle an initrd in highmem (Was Re: 2.6.24-rc6-mm1) Dhaval Giani
2008-01-07 13:53 ` Thomas Gleixner
2008-01-07 14:56 ` Ingo Molnar
2008-01-07 15:19 ` Dhaval Giani
2008-01-07 16:22 ` Randy Dunlap
2008-01-07 16:32 ` Dhaval Giani
2008-01-07 16:50 ` Thomas Gleixner
2008-01-07 22:15 ` Randy Dunlap
[not found] <9DtBq-2jD-3@gated-at.bofh.it>
[not found] ` <476EAF98.6040004@yahoo.fr>
[not found] ` <20071223121410.0d572e03.akpm@linux-foundation.org>
2007-12-24 1:25 ` 2.6.24-rc6-mm1 Herbert Xu
2007-12-30 13:10 ` 2.6.24-rc6-mm1 Ingo Molnar
2008-01-02 10:31 ` 2.6.24-rc6-mm1 Nick Piggin
2008-01-02 11:01 ` 2.6.24-rc6-mm1 Peter Zijlstra
2008-01-02 11:12 ` 2.6.24-rc6-mm1 Nick Piggin
2008-01-02 11:24 ` 2.6.24-rc6-mm1 Peter Zijlstra
2008-01-02 12:19 ` 2.6.24-rc6-mm1 Ingo Molnar
2008-01-02 13:26 ` 2.6.24-rc6-mm1 Alan Cox
2008-01-02 16:18 ` 2.6.24-rc6-mm1 Ingo Molnar
2008-01-02 22:49 ` 2.6.24-rc6-mm1 Alan Cox
2008-01-02 11:08 ` 2.6.24-rc6-mm1 Ingo Molnar
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=20080106202616Z.tomof@acm.org \
--to=tomof@acm.org \
--cc=akpm@linux-foundation.org \
--cc=bfields@fieldses.org \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=herbert@gondor.apana.org.au \
--cc=jarkao2@gmail.com \
--cc=just.for.lkml@googlemail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=neilb@suse.de \
--cc=netdev@vger.kernel.org \
--cc=tom@opengridcomputing.com \
/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.