Received: by 10.223.176.46 with SMTP id f43csp3442009wra; Mon, 22 Jan 2018 14:27:50 -0800 (PST) X-Google-Smtp-Source: AH8x227HmzunH9H1bBD2tTc6MI9mKJ8fHRIfAFYaet2O6tBnG0xntpHX9UDF1t2cae8ozr+Xckpv X-Received: by 10.36.7.9 with SMTP id f9mr567615itf.143.1516660070149; Mon, 22 Jan 2018 14:27:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516660070; cv=none; d=google.com; s=arc-20160816; b=UjDgI/lT1ARKMGskX6Af/I4cJQHQpXdzYDY2On/ON2S9+qIo5faW66z1F2zyIozEZB h+JTvPLHgur95auyezPXi3VsmcvoGTyCB29F2PTz9NlEjSOl92Smyjek7n/g2VglaUh8 zX25BMWvWduWQ0LbWI55RDXtNnpvyO4XtzKBo2H1EAehjSU/m7QMs1a8kLjByKfTUg4F Sqw+AE3ElkWbppjYrT8zpbqodVry8sHLsni3VIM7lCuz29ea7n3b25fQB+I7EFdPJj9J FSxpWdYbOwyhwVLvko+bJKjFXki0Xge4O6I+WNvoOtoNr8vV58+v/aYoeYqiwc0j1BP9 DxSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dmarc-filter:arc-authentication-results; bh=VznN716v807gDzA9ofkYgd3bMHOY9nQx337xsJ+y+ss=; b=Zv/Sm5HlCVVDLj5VDOZmysXMf4CHP3I7vPLlwyYM6192nJmB/14Xn3tHgcJ9bE8lWU gV2eshM2MN3ddppR8ccCfLM42zpKNKZNeOHbJHmRHb1G9hp1xNOOheiFHjhRWJQARjpL DB4jG50L2o5LcZVpT9GLF7e1nORmpwPFPVtGqMMPtD2s9JSjM2Hj4JkQqxa3yPxbbs9y iACmia9unpB/ZEc8MKCJUIlYPqOpa0fBJesht/B3HBLBhxc93UNAyL9zr4CpsZjMwcJU bdu62bWMeA/l76YvCqiZ+xV6x/vSJPEmevWm8ayGr/1ZoffnbE7HL3NjdXobp2DjQ61W lA7A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y188si13985512iod.82.2018.01.22.14.27.37; Mon, 22 Jan 2018 14:27:50 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751247AbeAVW0U (ORCPT + 99 others); Mon, 22 Jan 2018 17:26:20 -0500 Received: from mail.kernel.org ([198.145.29.99]:57276 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751053AbeAVW0Q (ORCPT ); Mon, 22 Jan 2018 17:26:16 -0500 Received: from localhost (unknown [69.71.4.159]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2DA43214E1; Mon, 22 Jan 2018 22:26:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2DA43214E1 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=helgaas@kernel.org Date: Mon, 22 Jan 2018 16:26:10 -0600 From: Bjorn Helgaas To: Jan Kiszka Cc: Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , x86@kernel.org, Linux Kernel Mailing List , jailhouse-dev@googlegroups.com Subject: Re: [PATCH v2 12/12] x86/jailhouse: Initialize PCI support Message-ID: <20180122222610.GA197931@bhelgaas-glaptop.roam.corp.google.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 27, 2017 at 09:11:54AM +0100, Jan Kiszka wrote: > From: Jan Kiszka > > With this change, PCI devices can be detected and used inside a non-root > cell. > > Signed-off-by: Jan Kiszka > --- > arch/x86/kernel/jailhouse.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/arch/x86/kernel/jailhouse.c b/arch/x86/kernel/jailhouse.c > index 8ff21e1534de..70b857d4b1f5 100644 > --- a/arch/x86/kernel/jailhouse.c > +++ b/arch/x86/kernel/jailhouse.c > @@ -18,6 +18,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -108,6 +109,19 @@ static void jailhouse_no_restart(void) > machine_halt(); > } > > +static int __init jailhouse_pci_arch_init(void) > +{ > + pci_direct_init(1); > + > + /* > + * There are no bridges on the virtual PCI root bus under Jailhouse, > + * thus no other way to discover all devices than a full scan. > + */ > + pcibios_last_bus = 0xff; Can you help me understand the comment here? If the virtual root bus is bus 00, are you saying the guest might see devices on bus 00 and bus 01, with no bus 00 bridge that leads to bus 01? I suspect you mean something different because you say elsewhere that ARM "just works" because DT provides more configurability. But even on ARM with DT, we probe the root bus and only probe other buses when we find bridges leading to them. So I suspect the purpose of this may be to discover devices that are below host bridges not exposed by ACPI. For example, my BIOS may expose one host bridge: ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-7e]) but the chipset may implement devices on bus 7f even though the BIOS did not advertise the host bridge leading to that bus. This is a case of a missing host bridge, not a missing bridge on the root bus. Can you show an example "lspci -v" output to make this concrete? > + return 0; > +} > + > static void __init jailhouse_init_platform(void) > { > u64 pa_data = boot_params.hdr.setup_data; > @@ -117,6 +131,7 @@ static void __init jailhouse_init_platform(void) > x86_init.irqs.pre_vector_init = x86_init_noop; > x86_init.timers.timer_init = jailhouse_timer_init; > x86_init.mpparse.get_smp_config = jailhouse_get_smp_config; > + x86_init.pci.arch_init = jailhouse_pci_arch_init; > > x86_platform.calibrate_cpu = jailhouse_get_tsc; > x86_platform.calibrate_tsc = jailhouse_get_tsc; > @@ -159,6 +174,8 @@ static void __init jailhouse_init_platform(void) > > precalibrated_tsc_khz = setup_data.tsc_khz; > > + pci_probe = 0; > + > /* > * Avoid that the kernel complains about missing ACPI tables - there > * are none in a non-root cell. > -- > 2.12.3 >