9front - general discussion about 9front
 help / color / mirror / Atom feed
From: cinap_lenrek@felloff.net
To: 9front@9front.org
Subject: Re: [9front] 9front on Xen 4.4 HVM
Date: Sat, 21 Feb 2015 12:51:29 +0100	[thread overview]
Message-ID: <21f8ac56c3ec66454834bd0d850220e3@felloff.net> (raw)
In-Reply-To: <CAHL7psGizAAaMShY6HDYYaDSW+oqzGsoNzETdLDwEQ9FhaexOA@mail.gmail.com>

well, that sounds like a interrupt problem indeed. when you send
packets, all the driver does is to put packets in transmit ring
and optionally kick the card with some register that it should start
transmitting.

but receiving works by the card issuing a interrupt and then the
driver looks in the receive ring if there are new packets from the
card.

if interrupt couldnt be enabled (because if broken mp tables), then
we wont receive anything. but sending might still work because it
doesnt need an interrupt.

the relation with mp is that mp systems use the apic interrupt
controller instead of the legacy pic controller (it is mandatory
as you need to use the apic to bootstrap the other processors).

enabling interrupt on pic is easy. you read the irq register
from the pci config space (that the bios programmed for you)...
sometimes, pci interrupt router needs to be programmed.

apic is a bit more complicated than pic because there can be multiple
apic controllers (and multiple processors/lapic's) and we require
tables (from bios) to find the mapping from pci bus interrupt
lines to the apics (which can then be programmed to send interrupts
to the lapics/processors).

and then theres msi interrupts that *some* devices support that
do not require any tables. you program register in pci config
space for the device and you'r done. this also works only with
apic.

when you specify *acpi= in plan9.ini, then the kernel will use
the acpi tables instead of the mp tables.

when you use *nomp=, then we will use legacy pic interrupt controller
and only one cpu can be used (this is also what happens when we cannot
find mp table).

--
cinap


  reply	other threads:[~2015-02-21 11:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-20 16:54 Giacomo Tesio
2015-02-20 17:09 ` [9front] " cinap_lenrek
2015-02-21 10:50   ` Giacomo Tesio
2015-02-21 11:51     ` cinap_lenrek [this message]
2015-02-21 18:46       ` Giacomo Tesio
2015-02-21 19:50         ` mischief
2015-02-21 20:46         ` cinap_lenrek
2015-02-21 21:57           ` Giacomo Tesio

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=21f8ac56c3ec66454834bd0d850220e3@felloff.net \
    --to=cinap_lenrek@felloff.net \
    --cc=9front@9front.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;
as well as URLs for NNTP newsgroup(s).