All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: Marcelo Tosatti <mtosatti@redhat.com>,
	"H. Peter Anvin" <hpa@zytor.com>, Avi Kivity <avi@redhat.com>,
	Randy Dunlap <rdunlap@xenotime.net>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	x86@kernel.org, kvm@vger.kernel.org, linux-next@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH] apic: fix kvm build on UP without IOAPIC
Date: Sun, 8 Jul 2012 23:56:25 +0300	[thread overview]
Message-ID: <20120708205625.GA5292@redhat.com> (raw)
In-Reply-To: <20120706141222.GA23400@gmail.com>

On Fri, Jul 06, 2012 at 04:12:23PM +0200, Ingo Molnar wrote:
> 
> * Marcelo Tosatti <mtosatti@redhat.com> wrote:
> 
> > On Fri, Jul 06, 2012 at 01:13:14PM +0200, Ingo Molnar wrote:
> > > 
> > > * H. Peter Anvin <hpa@zytor.com> wrote:
> > > 
> > > > On 07/01/2012 08:05 AM, Michael S. Tsirkin wrote:
> > > > >On UP i386, when APIC is disabled
> > > > ># CONFIG_X86_UP_APIC is not set
> > > > ># CONFIG_PCI_IOAPIC is not set
> > > > >
> > > > >code looking at apicdrivers never has any effect but it
> > > > >still gets compiled in. In particular, this causes
> > > > >build failures with kvm, but it generally bloats the kernel
> > > > >unnecessarily.
> > > > >
> > > > >Fix by defining both __apicdrivers and __apicdrivers_end
> > > > >to be NULL when CONFIG_X86_LOCAL_APIC is unset: I verified
> > > > >that as the result any loop scanning __apicdrivers gets optimized out by
> > > > >the compiler.
> > > > >
> > > > >Warning: a .config with apic disabled doesn't seem to boot
> > > > >for me (even without this patch). Still verifying why,
> > > > >meanwhile this patch is compile-tested only.
> > > > >
> > > > >Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > > > >---
> > > > >
> > > > >Note: if this patch makes sense, can x86 maintainers
> > > > >please ACK applying it through the kvm tree, since that is
> > > > >where we see the issue that it addresses?
> > > > >Avi, Marcelo, maybe you can carry this in kvm/linux-next as a temporary
> > > > >measure so that linux-next builds?
> > > > >
> > > > 
> > > > I'm not happy about that as a workflow, but since you guys have an
> > > > immediate problem I guess we can do that.
> > > 
> > > I'm rather unhappy about this workflow - we've got quite a few 
> > > apic bits in the x86 tree this cycle as well and need extra 
> > > external interaction, not.
> > > 
> > > Which KVM tree commit caused this, could someone please give a 
> > > lkml link or quote it here? It's not referenced in the fix patch 
> > > either.
> > > 
> > > Thanks,
> > > 
> > > 	Ingo
> > 
> > This tree (kvm.git next):
> > 
> > http://git.kernel.org/?p=virt/kvm/kvm.git;a=shortlog;h=refs/heads/next
> > 
> > Introduced by this commit:
> > 
> > http://git.kernel.org/?p=virt/kvm/kvm.git;a=commit;h=ab9cf4996bb989983e73da894b8dd0239aa2c3c2
> 
> This bit:
> 
> > +	if (kvm_para_has_feature(KVM_FEATURE_PV_EOI)) {
> > +		struct apic **drv;
> > +
> > +		for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) {
> > +			/* Should happen once for each apic */
> > +			WARN_ON((*drv)->eoi_write == kvm_guest_apic_eoi_write);
> > +			(*drv)->eoi_write = kvm_guest_apic_eoi_write;
> > +		}
> > +	}
> > +
> 
> is rather disgusting I have to say.
> 
> WTH is the KVM code meddling with core x86 apic driver data 
> structures directly? At minimum factor this out and create a 
> proper apic.c function which is EXPORT_SYMBOL_GPL() exported or 
> so...
> 
> Thanks,
> 
> 	Ingo

OK, so apic_set_eoi_write()?

-- 
MST

  reply	other threads:[~2012-07-08 20:56 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-01 15:05 [PATCH] apic: fix kvm build on UP without IOAPIC Michael S. Tsirkin
2012-07-01 16:23 ` Randy Dunlap
2012-07-01 17:10 ` H. Peter Anvin
2012-07-06 11:13   ` Ingo Molnar
2012-07-06 11:32     ` Marcelo Tosatti
2012-07-06 14:12       ` Ingo Molnar
2012-07-08 20:56         ` Michael S. Tsirkin [this message]
2012-07-09  9:24           ` Ingo Molnar
2012-07-03 18:55 ` Marcelo Tosatti

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=20120708205625.GA5292@redhat.com \
    --to=mst@redhat.com \
    --cc=avi@redhat.com \
    --cc=hpa@zytor.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=rdunlap@xenotime.net \
    --cc=sfr@canb.auug.org.au \
    --cc=tglx@linutronix.de \
    --cc=x86@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.