Added in Kconfig.
On ia64, use ia64 sysdata instead of pcifront genuine one.
Fix a warning on xenbus.c
Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
This patch adds support to the frontend for notifying the backend whenever
the rx ring is refilled. This is required in order for the backend to
get a tx queue.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Modified to only send notification if req_event index is set
appropriately.
Signed-off-by: Keir Fraser <keir@xensource.com>
The connection status to the frontend can be represented using
netif_carrier_ok instead of netif->status. As a result, we delay
the construction of the dev qdisc until the carrier comes on. This
is a prerequisite for adding a tx queue.
By the same token, netif->active is now simply the conjunction of
netif_running and netif_carrier_ok so it too can be removed.
Because netif_carrier_off/netif_carrier_on and rtnl_lock all entail
memory barriers, there is no need to have extra memory barriers around
them.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This patch moves all rx request pushing to network_alloc_rx_buffers.
This is needed to reduce churn for TSO. More importantly, this makes
it easier to send notifications when adding rx requests which is
required for having a queue in dom0.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Keir Fraser <keir@xensource.com>
This is an update to c/s
10855:03c8002068d9d60c7bbfc2f41af975e09b2e2211
which should have contained the following changeset message
(rather than 'Merge.').
[NET] front: Stop using rx->id
With the current protocol for transferring packets from dom0 to domU,
the
rx->id field is useless because it can be derived from the rx request
ring
ID. In particular,
rx->id = (ring_id & NET_RX_RING_SIZE - 1) + 1;
This formula works because the rx response to each request always
occupies
the same slot that the request arrived in. This in turn is a
consequence
of the fact that each packet only occupies one slot.
The other important reason that this works for dom0=>domU but not
domU=>dom0
is that the resource associated with the rx->id is freed immediately
while
in the domU=>dom0 case the resource is held until the skb is liberated
by
dom0.
Using this formula we can essentially remove rx->id from the protocol,
freeing up space that could be instead be used by things like TSO.
The
only constraint is that the backend must obey the rule that each id
must
only be used in the response that occupies the same slot as the
request.
The actual field of rx->id is still maintained for compatibility with
older backends.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
flag and the two policy files. However, the general intent of this
patch set is to avoid the need for user interaction, so documentation
is somewhat sparse.
Signed-off-by: Chris Bookholt <hap10@tycho.ncsc.mil>
1. xend-pci-quirks.sxp:
Specifies which PCI device(s) may write to a set of PCI configuration
space registers. A quirky PCI device is identified by its vendor ID,
device ID, subvendor ID, and subdevice ID. If a matching entry is
found, the corresponding fields will be sent to the PCI bus manager.
Fields are composed of a register, size, and mask -- although the mask
field is currently unused.
The included policy file is for a range of tg3 devices, which is the
only type of quirky device I know about. Users with other quirky
devices are invited to either add entries to this policy file or add
an entry in the permissive file, described next. In either case, send an
email to the xen-devel list to make the device known.
2. xend-pci-permissive.sxp
Lists PCI devices that pciback should not prevent from writing to
their configuration space. This can be necessary if, for example, a new
Tigon3 devices is released with different PCI vendor/device values
such that no entry in xend-pci-quirks.sxp is triggered.
Signed-off-by: Chris Bookholt <hap10@tycho.ncsc.mil>
the corresponding fields to the PCI bus manager via sysfs nodes:
/sys/bus/pci/drivers/pciback/quirks
/sys/bus/pci/drivers/pciback/permissive
xend reads the policy file every time it creates a new domain that was
assigned a PCI device.
Signed-off-by: Chris Bookholt <hap10@tycho.ncsc.mil>
configuration space writes, with a goal that was also previously
described by Ryan:
"Permissive mode should only be used as a fall back for unknown
devices.
I think the correct solution for dealing with these device-specific
configuration space registers is to identify them and add the
device-specific fields to the overlay. This patch adds a special
configuration space handler for network cards based on the tg3 linux
network device driver. This handler should allow for reads/writes to
all of the configuration space registers that the tg3 driver requires."
This patch attempts to address concerns with Ryan's original
submission by moving policy from the dom0 kernel into dom0 user-space.
As new quirky devices emerge they can be incorporated into the user-space
policy. An added benefit is that changes to the policy are effective
for domains created after the changes are written (no need rebuild the
hypervisor or restart xend).
Signed-off-by: Chris Bookholt <hap10@tycho.ncsc.mil>
The function cpu_physical_memory_rw() thinks that if an address is
not mmio-related, it is assumed to be a RAM case. This is improper.
When making the assumption, we should make sure the address is less
than the guest physical memory size ram_size.
From: Cui, Dexuan <dexuan.cui@intel.com>
Signed-off-by: Christian Limpach <Christian.Limpach@xensource.com>
First steps in hypevisor to support driver domains.
IO ports capabilities added (not yet used).
IO mem capabilities checked.
ASSIGN_nocache flag added.
Memory attributes checked.
Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
This adds back changes from xen-ia64-unstable.hg cset:
10570:8dc4af3f192c7c1ef3cd6921196997b903d25add
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Remove the confusing flag ARCH_VMX_CONTIG_MEM for VTi domain. And add a
flag ARCH_VMX_DOMAIN to ensure VMX_DOMAIN check on all vcpus.
Signed-off-by : Zhang xiantao <xiantao.zhang@intel.com>
The connection status to the frontend can be represented using
netif_carrier_ok instead of netif->active. As a result, we delay
the construction of the dev qdisc until the carrier comes on. This
is a prerequisite for adding a tx queue.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Tasklets have the property that each one is running on only one CPU at
any time. This means that you don't have to worry about the tasklet
racing against itself. Therefore any resources used by just a single
tasklet does not need to be guarded by locks.
Since net_rx_action is the only user of alloc_mfn, we can remove the
mfn_lock that guard it.
The notify_list array is huge by Linux standards so placing it on the
stack is unsafe. Since net_rx_action is not re-entrant, we can simply
make it static.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Changeset 10734 removed the code clearing MPT l2 entries, however
these entries are stained when copying from idle_pg_table_l2.
Signed-off-by: Xin Li <xin.b.li@intel.com>
When page is zapped from a domain, the page referenced counter
is checked. But it results in false positive alert on Xen/IA64
because a page 'in use' has reference count 2 on Xen/IA64.
- a page is assigned to guest domain's psudo physical address space.
This is decremented by guest_physmap_remove_page()
- a page is allocated for a domain.
This is decremented by the following put_page()
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Uninitialized ifname can cause qemu to quit. If the first character of the
ifname is not \0, qemu will think it's a valid ifname and configure
/dev/net/tun to use it. The configuration fails and qemu exits.
Based on a patch from: Steve Dobbelstein <steved@us.ibm.com>
Signed-off-by: Christian Limpach <Christian.Limpach@xensource.com>