mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Yinghai Lu <yhlu.kernel@gmail.com>
To: Ingo Molnar <mingo@elte.hu>,
	FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: linux-kernel@vger.kernel.org, chrisw@sous-sol.org,
	wmw2@infradead.org, joerg.roedel@amd.com, muli@il.ibm.com
Subject: Re: [PATCH v2 0/9] x86: handle HW IOMMU initialization failure  gracefully
Date: Sat, 21 Nov 2009 19:17:37 -0800	[thread overview]
Message-ID: <86802c440911211917s64fb8f92g718fc80367c55985@mail.gmail.com> (raw)
In-Reply-To: <20091110111919.GA20353@elte.hu>

On Tue, Nov 10, 2009 at 3:19 AM, Ingo Molnar <mingo@elte.hu> wrote:
>
> * FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> wrote:
>
>> This patchset is against tip/master.
>>
>> The first version is:
>>
>> http://marc.info/?l=linux-kernel&m=125671300920411&w=2
>>
>> The changes since v1 are:
>>
>> - replaced Chris' bootmem patches with the 6/9 patch to implement
>>   free_bootmem_late in a simple way (thanks to Pekka).
>>
>> - fixed the bug to break 'iommu=soft' boot opiton (found by Joerg).
>>
>> - moved iommu_init_noop() to x86_init.c
>>
>> - added Muli's Acked-by to Calgary patch.
>>
>>
>> ==
>>  arch/ia64/kernel/pci-swiotlb.c   |    4 +-
>>  arch/powerpc/kernel/setup_32.c   |    2 +-
>>  arch/powerpc/kernel/setup_64.c   |    2 +-
>>  arch/x86/include/asm/amd_iommu.h |    2 -
>>  arch/x86/include/asm/calgary.h   |    2 -
>>  arch/x86/include/asm/gart.h      |    5 +---
>>  arch/x86/include/asm/iommu.h     |    1 -
>>  arch/x86/include/asm/x86_init.h  |    9 +++++++
>>  arch/x86/kernel/amd_iommu.c      |    2 +-
>>  arch/x86/kernel/amd_iommu_init.c |   19 +++-----------
>>  arch/x86/kernel/aperture_64.c    |    4 ++-
>>  arch/x86/kernel/pci-calgary_64.c |   19 ++++-----------
>>  arch/x86/kernel/pci-dma.c        |   27 ++++++++++-----------
>>  arch/x86/kernel/pci-gart_64.c    |   16 ++++-------
>>  arch/x86/kernel/pci-nommu.c      |    9 -------
>>  arch/x86/kernel/pci-swiotlb.c    |   10 +++----
>>  arch/x86/kernel/x86_init.c       |    5 ++++
>>  drivers/pci/dmar.c               |    7 ++++-
>>  drivers/pci/intel-iommu.c        |    4 +-
>>  include/linux/bootmem.h          |    1 +
>>  include/linux/dmar.h             |   10 -------
>>  include/linux/swiotlb.h          |    5 ++-
>>  lib/swiotlb.c                    |   49 +++++++++++++++++++++++++++++++------
>>  mm/bootmem.c                     |   24 ++++++++++++++++++
>>  24 files changed, 131 insertions(+), 107 deletions(-)
>
> Nice changes! I've applied them to tip:core/iommu (with the small build
> fix i mentioned in the previous mail) and will push them out later
> today.
>

this patch set will break some AMD system

amd 64 systems that
1. do not have  AGP
2. do not have IOMMU
3. mem > 4g
4. BIOS do not allocate  correct gart in NB.

will leave them to use SWIOTLB forcely.

following code that allocate some RAM as aperture will be called
anymore for them
        } else if (!valid_agp) {
                /* Do nothing */
        } else if ((!no_iommu && max_pfn > MAX_DMA32_PFN) ||
                   force_iommu ||
                   valid_agp ||
                   fallback_aper_force) {
                printk(KERN_INFO
                        "Your BIOS doesn't leave a aperture memory hole\n");
                printk(KERN_INFO
                        "Please enable the IOMMU option in the BIOS setup\n");
                printk(KERN_INFO
                        "This costs you %d MB of RAM\n",
                                32 << fallback_aper_order);

                aper_order = fallback_aper_order;
                aper_alloc = allocate_aperture();
                if (!aper_alloc) {
                        /*
                         * Could disable AGP and IOMMU here, but it's
                         * probably not worth it. But the later users
                         * cannot deal with bad apertures and turning
                         * on the aperture over memory causes very
                         * strange problems, so it's better to panic
                         * early.
                         */
                        panic("Not enough memory for aperture");
                }

also in

 void __init pci_iommu_alloc(void)
{
#ifdef CONFIG_X86_64
        /* free the range so iommu could get some range less than 4G */
        dma32_free_bootmem();
#endif
        if (pci_swiotlb_init())
                return;

        gart_iommu_hole_init();

        detect_calgary();

        detect_intel_iommu();

        /* needs to be called after gart_iommu_hole_init */
        amd_iommu_detect();
}

pci_swiotlb_init is stealing the preallocate range that is
gart_iommu_hole workaround.

so please move back swiotlb_init to the end.

there is no point to allocate swiotlb at first and then free it if
some iommu is there.

YH

      parent reply	other threads:[~2009-11-22  3:17 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-10 10:46 FUJITA Tomonori
2009-11-10 10:46 ` [PATCH -v2 1/9] add iommu_init to x86_init_ops FUJITA Tomonori
2009-11-10 13:22   ` [tip:core/iommu] x86: Add " tip-bot for FUJITA Tomonori
2009-11-10 13:42   ` [tip:core/iommu] x86: Add iommu_init to x86_init_ops, fix build tip-bot for Ingo Molnar
2009-11-10 10:46 ` [PATCH -v2 2/9] Calgary: convert detect_calgary to use iommu_init hook FUJITA Tomonori
2009-11-10 13:22   ` [tip:core/iommu] x86: Calgary: Convert detect_calgary() " tip-bot for FUJITA Tomonori
2009-11-10 10:46 ` [PATCH -v2 3/9] GART: convert gart_iommu_hole_init " FUJITA Tomonori
2009-11-10 13:23   ` [tip:core/iommu] x86: GART: Convert gart_iommu_hole_init() " tip-bot for FUJITA Tomonori
2009-11-10 10:46 ` [PATCH -v2 4/9] amd_iommu: convert amd_iommu_detect " FUJITA Tomonori
2009-11-10 13:23   ` [tip:core/iommu] x86: amd_iommu: Convert amd_iommu_detect() " tip-bot for FUJITA Tomonori
2009-11-10 10:46 ` [PATCH -v2 5/9] intel-iommu: convert detect_intel_iommu " FUJITA Tomonori
2009-11-10 11:12   ` Ingo Molnar
2009-11-10 13:23   ` [tip:core/iommu] x86: intel-iommu: Convert " tip-bot for FUJITA Tomonori
2009-11-10 10:46 ` [PATCH -v2 6/9] bootmem: add free_bootmem_late FUJITA Tomonori
2009-11-10 12:00   ` Johannes Weiner
2009-11-14 12:50     ` FUJITA Tomonori
2009-11-10 13:23   ` [tip:core/iommu] bootmem: Add free_bootmem_late() tip-bot for FUJITA Tomonori
2009-11-11 23:56   ` [PATCH -v2 6/9] bootmem: add free_bootmem_late Andrew Morton
2009-11-12  7:47     ` Ingo Molnar
2009-11-10 10:46 ` [PATCH -v2 7/9] swiotlb: add swiotlb_free function FUJITA Tomonori
2009-11-10 11:27   ` Ingo Molnar
2009-11-10 13:24   ` [tip:core/iommu] swiotlb: Add swiotlb_free() function tip-bot for FUJITA Tomonori
2009-11-10 10:46 ` [PATCH -v2 8/9] swiotlb: export swiotlb_print_info FUJITA Tomonori
2009-11-10 13:24   ` [tip:core/iommu] swiotlb: Defer swiotlb init printing, export swiotlb_print_info() tip-bot for FUJITA Tomonori
2009-11-10 10:46 ` [PATCH -v2 9/9] x86: handle HW IOMMU initialization failure gracely FUJITA Tomonori
2009-11-10 11:27   ` Ingo Molnar
2009-11-10 13:24   ` [tip:core/iommu] x86: Handle HW IOMMU initialization failure gracefully tip-bot for FUJITA Tomonori
2009-11-22  4:24     ` [PATCH] x86: fix gart iommu using for amd 64 bit system Yinghai Lu
2009-11-22  5:19       ` [PATCH] x86: fix gart iommu using for amd 64 bit system -v2 Yinghai Lu
2009-11-24  8:46       ` [PATCH] x86: fix gart iommu using for amd 64 bit system FUJITA Tomonori
2009-11-24  9:19         ` Yinghai Lu
2009-11-24  9:35           ` FUJITA Tomonori
2009-11-24  9:48             ` Yinghai Lu
2009-11-24 10:31               ` FUJITA Tomonori
2009-11-24 10:42                 ` Yinghai Lu
2009-11-24 13:50                   ` FUJITA Tomonori
2009-11-24 15:26                     ` Ingo Molnar
2009-11-24 18:28                       ` Yinghai Lu
2009-11-24 23:57                       ` FUJITA Tomonori
2009-11-25  7:25                         ` Ingo Molnar
2009-11-25  7:56                           ` FUJITA Tomonori
2009-11-24 18:48                     ` Yinghai Lu
2009-11-24 23:48                       ` FUJITA Tomonori
2009-11-10 11:19 ` [PATCH v2 0/9] x86: handle HW IOMMU initialization failure gracefully Ingo Molnar
2009-11-10 11:55   ` Ingo Molnar
2009-11-10 12:35     ` FUJITA Tomonori
2009-11-22  3:17   ` Yinghai Lu [this message]

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=86802c440911211917s64fb8f92g718fc80367c55985@mail.gmail.com \
    --to=yhlu.kernel@gmail.com \
    --cc=chrisw@sous-sol.org \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=joerg.roedel@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=muli@il.ibm.com \
    --cc=wmw2@infradead.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

all inboxes | Powered by JetHome®