Displaying 20 results from an estimated 60 matches for "req_con".
Did you mean:
req_cons
2013 Feb 06
0
[PATCH 1/4] xen/netback: shutdown the ring if it contains garbage.
...uot;);
+ netdev_err(vif->dev, "Missing extra info\n");
+ netbk_fatal_tx_err(vif);
return -EBADR;
}
@@ -1104,8 +1116,9 @@ static int xen_netbk_get_extras(struct xenvif *vif,
if (unlikely(!extra.type ||
extra.type >= XEN_NETIF_EXTRA_TYPE_MAX)) {
vif->tx.req_cons = ++cons;
- netdev_dbg(vif->dev,
+ netdev_err(vif->dev,
"Invalid extra type: %d\n", extra.type);
+ netbk_fatal_tx_err(vif);
return -EINVAL;
}
@@ -1121,13 +1134,15 @@ static int netbk_set_skb_gso(struct xenvif *vif,
struct xen_netif_extra_info *gso)...
2010 Aug 03
1
oops when access xenstore in hvm guest
...nd event channel, then i wrapped writing and reading function to operate it ,but it came to oops:
struct xenstore_domain_interface {
char req[XENSTORE_RING_SIZE]; /* Requests to xenstore daemon. */
char rsp[XENSTORE_RING_SIZE]; /* Replies and async watch events. */
XENSTORE_RING_IDX req_cons, req_prod;
XENSTORE_RING_IDX rsp_cons, rsp_prod;
};
struct xenstore_domain_interface *xenstore;
xen_hvm_param_t param;
param.domid = DOMID_SELF;
param.index = HVM_PARAM_STORE_PFN;
if ( hypercall_hvm_op(HVMOP_get_param, ¶m) )
BUG();
xenstore = (void *...
2013 Feb 11
0
[xen-unstable test] 16014: regressions - FAIL
...he ring writer because the
only use made of the unmasked value is the check which prevents the
prod pointer overtaking the cons pointer. A ring peer which defeats
this check will suffer only lost data.
However, additionally, precautions need to be taken to ensure that
req_cons and req_prod are only read once in each function. Without
the use of volatile or some asm construct, the compiler can "prove"
that req_cons and req_prod do not change unexpectedly and is permitted
to "amplify" the read of (say) req_cons into two reads at different...
2007 Nov 10
3
ring.h notification hold-off question
...wrapping the ring indexes.
a) to make sure: ring idx integer-wraps do happen, right?
asking because the only mask operations i can find are those
in the GET_REQUEST/RESPONSE macros.
b) if __old were UINT_MAX, then the consumer side might/would
set req_event to 0 after catching up right? (req_cons(== req_prod)+1)
now assume __new == __old + 2 then we had
req_event [0] < __new [1] < __old [INT_MAX]
i.e.
__new - req_event [1] > __new - __old [-1]
i.e. _notify=false, which i believe skips a wanted notification.
c)
the case
__old < __new < req_event
(no w...
2013 Jul 09
20
[PATCH 1/1] xen/netback: correctly calculate required slots of skb.
...owing calculation for
required slot in netbk_gop_skb.
In netbk_gop_skb, required slots are calculated based on offset and len in page
of header data. It is possible that required slots here is larger than the one
calculated in earlier netbk_count_requests. This inconsistency directly results
in rx_req_cons_peek and xen_netbk_rx_ring_full judgement are wrong.
Then it comes to situation the ring is actually full, but netback thinks it is
not and continues to create responses. This results in response overlaps request
in the ring, then grantcopy gets wrong grant reference and throws out error,
for exa...
2011 May 02
32
[PATCH] blkback: Fix block I/O latency issue
In blkback driver, after I/O requests are submitted to Dom-0 block I/O subsystem, blkback goes to ''sleep'' effectively without letting blkfront know about it (req_event isn''t set appropriately). Hence blkfront doesn''t notify blkback when it submits a new I/O thus delaying the ''dispatch'' of the new I/O to Dom-0 block I/O subsystem. The new I/O is
2015 Dec 31
0
[PATCH v2 34/34] xen/io: use virt_xxx barriers
...ING_IDX)(__new - (_r)->sring->rsp_event) < \
(RING_IDX)(__new - __old)); \
} while (0)
@@ -271,7 +271,7 @@ struct __name##_back_ring { \
(_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r); \
if (_work_to_do) break; \
(_r)->sring->req_event = (_r)->req_cons + 1; \
- mb(); \
+ virt_mb(); \
(_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r); \
} while (0)
@@ -279,7 +279,7 @@ struct __name##_back_ring { \
(_work_to_do) = RING_HAS_UNCONSUMED_RESPONSES(_r); \
if (_work_to_do) break; \
(_r)->sring...
2015 Dec 30
0
[PATCH 32/34] xen/io: use __smp_XXX barriers
...ING_IDX)(__new - (_r)->sring->rsp_event) < \
(RING_IDX)(__new - __old)); \
} while (0)
@@ -271,7 +271,7 @@ struct __name##_back_ring { \
(_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r); \
if (_work_to_do) break; \
(_r)->sring->req_event = (_r)->req_cons + 1; \
- mb(); \
+ __smp_mb(); \
(_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r); \
} while (0)
@@ -279,7 +279,7 @@ struct __name##_back_ring { \
(_work_to_do) = RING_HAS_UNCONSUMED_RESPONSES(_r); \
if (_work_to_do) break; \
(_r)->srin...
2013 Jun 24
3
[PATCH v2] xen-netback: add a pseudo pps rate limit
...txreq.size > vif->remaining_credit &&
tx_credit_exceeded(vif, txreq.size)) {
@@ -1478,6 +1523,7 @@ static unsigned xen_netbk_tx_build_gops(struct xen_netbk *netbk)
}
vif->remaining_credit -= txreq.size;
+ vif->remaining_packets--;
work_to_do--;
vif->tx.req_cons = ++idx;
diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
index 410018c..7c55bed 100644
--- a/drivers/net/xen-netback/xenbus.c
+++ b/drivers/net/xen-netback/xenbus.c
@@ -267,15 +267,18 @@ static void frontend_changed(struct xenbus_device *dev,
static void xen_n...
2012 Aug 16
0
[RFC v1 5/5] VBD: enlarge max segment per request in blkfront
...seg_req = req->u.rw.seg;
}
+
+void copy_blkif_seg_req_v2(struct xen_blkif *blkif)
+{
+ struct blkif_request_header *req = (struct blkif_request_header *)blkif->req;
+ struct blkif_segment_back_ring *blk_segrings = &blkif->blk_segrings;
+ int i;
+ RING_IDX rc;
+
+ rc = blk_segrings->req_cons;
+ for (i = 0; i < req->u.rw.nr_segments; i++) {
+ memcpy(&blkif->seg_req[i], RING_GET_REQUEST(blk_segrings, rc++),
+ sizeof(struct blkif_request_segment));
+ }
+ blk_segrings->req_cons = rc;
+}
+
/*
* Function to copy the from the ring buffer the ''struct blkif_reque...
2013 Apr 30
6
[PATCH net-next 2/2] xen-netback: avoid allocating variable size array on stack
...-)
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
index c44772d..c6dc084 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -934,11 +934,15 @@ static int netbk_count_requests(struct xenvif *vif,
RING_IDX cons = vif->tx.req_cons;
int slots = 0;
int drop_err = 0;
+ int keep_looping;
if (!(first->flags & XEN_NETTXF_more_data))
return 0;
do {
+ struct xen_netif_tx_request dropped_tx = { 0 };
+ int cross_page = 0;
+
if (slots >= work_to_do) {
netdev_err(vif->dev,
"Asked for %d...
2008 May 30
5
[PATCH 1/4] pvSCSI driver
pvSCSI backend driver
Signed-off-by: Tomonari Horikoshi <t.horikoshi@jp.fujitsu.com>
Signed-off-by: Jun Kamada <kama@jp.fujitsu.com>
-----
Jun Kamada
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
2011 Jun 21
13
VM disk I/O limit patch
...o_block_io_op(blkif_t *blkif)
{
blkif_back_rings_t *blk_rings = &blkif->blk_rings;
@@ -314,15 +351,27 @@ static int do_block_io_op(blkif_t *blkif
pending_req_t *pending_req;
RING_IDX rc, rp;
int more_to_do = 0, ret;
+ static int last_done_nr_sects = 0;
rc = blk_rings->common.req_cons;
rp = blk_rings->common.sring->req_prod;
rmb(); /* Ensure we see queued requests up to ''rp''. */
+
+ if (blkif->reqmin && blkif->reqcount <= 0)
+ return (rc != rp) ? 2 : 0;
while ((rc != rp) || (blkif->is_suspended_req)) {
if (RING_REQUEST_...
2011 Jun 21
13
VM disk I/O limit patch
...o_block_io_op(blkif_t *blkif)
{
blkif_back_rings_t *blk_rings = &blkif->blk_rings;
@@ -314,15 +351,27 @@ static int do_block_io_op(blkif_t *blkif
pending_req_t *pending_req;
RING_IDX rc, rp;
int more_to_do = 0, ret;
+ static int last_done_nr_sects = 0;
rc = blk_rings->common.req_cons;
rp = blk_rings->common.sring->req_prod;
rmb(); /* Ensure we see queued requests up to ''rp''. */
+
+ if (blkif->reqmin && blkif->reqcount <= 0)
+ return (rc != rp) ? 2 : 0;
while ((rc != rp) || (blkif->is_suspended_req)) {
if (RING_REQUEST_...
2012 Aug 16
0
[RFC v1 3/5] VBD: enlarge max segment per request in blkfront
...et_x86_64_req(&req, RING_GET_REQUEST(&blk_rings->x86_64, rc));
- break;
- default:
- BUG();
- }
+ blkif->ops->copy_blkif_req(blkif, rc);
+
+ blkif->ops->copy_blkif_seg_req(blkif);
+
blk_rings->common.req_cons = ++rc; /* before make_response() */
/* Apply all sanity checks to /private copy/ of request. */
barrier();
- if (unlikely(req.operation == BLKIF_OP_DISCARD)) {
+ if (unlikely(req->operation == BLKIF_OP_DISCARD)) {
free_req(pending_req);
-...
2008 Mar 10
12
[RFC][PATCH] Use ioemu block drivers through blktap
When I submitted the qcow2 patch for blktap, suggestions came up that
the qemu block drivers should be used also for blktap to eliminate the
current code duplication in ioemu and blktap.
The attached patch adds support for a tap:ioemu pseudo driver. Devices
using this driver won''t use tapdisk (containing the code duplication)
any more, but will connect to the qemu-dm of the domain. In
2013 Jul 15
6
[PATCH 0 of 6 RESEND v2] blktap3/sring: shared ring between tapdisk and the front-end
This patch series introduces the shared ring used by the front-end to pass
request descriptors to tapdisk, as well as responses from tapdisk to the
front-end. Requests from this ring end up in tapdisk''s standard request queue.
When the tapback daemon detects that the front-end tries to connect to the
back-end, it spawns a tapdisk and tells it to connect to the shared ring. The
shared
2007 Apr 23
27
[PATCH 00/25] xen: Xen implementation for paravirt_ops
Hi Andi,
This series of patches implements the Xen paravirt-ops interface.
It applies to 2.6.21-rc7 + your patches + the last batch of pv_ops
patches I posted.
This patch generally restricts itself to Xen-specific parts of the tree,
though it does make a few small changes elsewhere.
These patches include:
- some helper routines for allocating address space and walking pagetables
- Xen
2007 Apr 23
27
[PATCH 00/25] xen: Xen implementation for paravirt_ops
Hi Andi,
This series of patches implements the Xen paravirt-ops interface.
It applies to 2.6.21-rc7 + your patches + the last batch of pv_ops
patches I posted.
This patch generally restricts itself to Xen-specific parts of the tree,
though it does make a few small changes elsewhere.
These patches include:
- some helper routines for allocating address space and walking pagetables
- Xen
2007 May 11
30
[patch 00/28]xen: Xen implementation for paravirt_ops
Hi Andi,
This series of patches implements the Xen paravirt-ops interface. It
applies to 2.6.21-git13 + patches-2.6.21-git7-070507-1.tar.gz (I think
"unwinder" is the only patch which doesn't apply to git13, and the
sched-clock patches are the only ones which this series actually
needs).
Changes since the last posting:
- More netfront review and cleanup
- Added ability to