From: "XU Liang" <liang.xu@cinfotech.cn>
To: "Burakov, Anatoly" <anatoly.burakov@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v6] eal: map uio resources after hugepages when the base_virtaddr is configured.
Date: Fri, 07 Nov 2014 17:57:07 +0800 [thread overview]
Message-ID: <2c2ad9a4-1c04-4641-9667-249617ae2c56@cinfotech.cn> (raw)
In-Reply-To: C6ECDF3AB251BE4894318F4E4512369780C07822@IRSMSX109.ger.corp.intel.com
How to find the maximum end virtual address ? I'm not the DPDK expert, but I will try to do my best.
If the segments isn't overlap, "if(seg->addr > last->addr) last = seg;" already find the segment with maximum end virtual address.
------------------------------------------------------------------From:Burakov, Anatoly <anatoly.burakov@intel.com>Time:2014 Nov 7 (Fri) 17 : 47To:徐亮 <liang.xu@cinfotech.cn>, dev@dpdk.org <dev@dpdk.org>Cc:thomas.monjalon@6wind.com <thomas.monjalon@6wind.com>, De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>Subject:RE: [PATCH v6] eal: map uio resources after hugepages when the base_virtaddr is configured.
The commit message looks fine to me, but VFIO code needs to be adjusted the same way.
Also, now that I think of it, you can't simply assume that whatever last memseg you have has the latest virtual address. When IVSHMEM is initialized, it too reserves some space in the virtual memory, which can be higher than the last hugepage, but not be the last hugepage (because IVSHMEM memory is first to be reserved, before the main memory).
My advice would be to rewrite the function to return the maximum end virtual address (instead of a last segment) and move it to eal_pci.c (and include declaration for it in include/eal_pci_init.h).
My apologies for not thinking about any of this during the first 6 iterations of the patch :(
Thanks,
Anatoly
-----Original Message-----
From: lxu [mailto:liang.xu@cinfotech.cn]
Sent: Friday, November 7, 2014 8:01 AM
To: dev@dpdk.org
Cc: Burakov, Anatoly; thomas.monjalon@6wind.com; De Lara Guarch, Pablo
Subject: [PATCH v6] eal: map uio resources after hugepages when the base_virtaddr is configured.
A multiple process DPDK application must mmap hugepages and pci resource into same virtual addresses. By default the virtual addresses chosen by the primary process automatically when calling the mmap. But sometime the virtual addresses chosen by the primary process isn't usable at secondary process. Such as the secondary process linked with more libraries than primary process. The library has been mapped into this virtual address. The command line parameter 'base-virtaddr' has been added for this situation. If it's configured, the hugepages will be mapped into this base address. But the virtual address of uio resource mapped still does not refer to the parameter. In that case it would still fail.
This patch try to map uio resources after hugepages when the base_virtaddr is configured. So the error of "EAL: pci_map_resource(): cannot mmap" can be resolved by set base-virtaddr into free virtual address space.
Signed-off-by: lxu <liang.xu@cinfotech.cn>
---
lib/librte_eal/linuxapp/eal/eal_pci_uio.c | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c
index 7e62266..a2c9ab6 100644
--- a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c
+++ b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c
@@ -273,6 +273,24 @@ pci_get_uio_dev(struct rte_pci_device *dev, char *dstbuf,
return uio_num;
}
+static inline const struct rte_memseg *
+get_physmem_last(void)
+{
+ const struct rte_memseg * seg = rte_eal_get_physmem_layout();
+ const struct rte_memseg * last = seg;
+ unsigned i = 0;
+
+ for (i=0; i<RTE_MAX_MEMSEG; i++, seg++) {
+ if (seg->addr == NULL)
+ break;
+
+ if(seg->addr > last->addr)
+ last = seg;
+
+ }
+ return last;
+}
+
/* map the PCI resource of a PCI device in virtual memory */ int pci_uio_map_resource(struct rte_pci_device *dev) @@ -290,6 +308,13 @@ pci_uio_map_resource(struct rte_pci_device *dev)
struct mapped_pci_resource *uio_res;
struct pci_map *maps;
+ /* map uio resource into user required virtual address */
+ static void * requested_addr;
+ if (internal_config.base_virtaddr && NULL == requested_addr) {
+ const struct rte_memseg * last = get_physmem_last();
+ requested_addr = RTE_PTR_ADD(last->addr, last->len);
+ }
+
dev->intr_handle.fd = -1;
dev->intr_handle.type = RTE_INTR_HANDLE_UNKNOWN;
@@ -371,10 +396,12 @@ pci_uio_map_resource(struct rte_pci_device *dev)
if (maps[j].addr != NULL)
fail = 1;
else {
- mapaddr = pci_map_resource(NULL, fd, (off_t)offset,
+ mapaddr = pci_map_resource(requested_addr, fd, (off_t)offset,
(size_t)maps[j].size);
if (mapaddr == NULL)
fail = 1;
+ else if (NULL != requested_addr)
+ requested_addr = RTE_PTR_ADD(mapaddr, maps[j].size);
}
if (fail) {
--
1.9.1
From anatoly.burakov@intel.com Fri Nov 7 10:53:50 2014
Return-Path: <anatoly.burakov@intel.com>
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
by dpdk.org (Postfix) with ESMTP id 2EF227EC4
for <dev@dpdk.org>; Fri, 7 Nov 2014 10:53:45 +0100 (CET)
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
by fmsmga101.fm.intel.com with ESMTP; 07 Nov 2014 02:02:55 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.07,331,1413270000";
d="scan'208,217";a="628228403"
Received: from irsmsx104.ger.corp.intel.com ([163.33.3.159])
by fmsmga002.fm.intel.com with ESMTP; 07 Nov 2014 02:02:40 -0800
Received: from irsmsx107.ger.corp.intel.com (163.33.3.99) by
IRSMSX104.ger.corp.intel.com (163.33.3.159) with Microsoft SMTP Server (TLS)
id 14.3.195.1; Fri, 7 Nov 2014 10:00:58 +0000
Received: from irsmsx109.ger.corp.intel.com ([169.254.13.101]) by
IRSMSX107.ger.corp.intel.com ([169.254.10.154]) with mapi id 14.03.0195.001;
Fri, 7 Nov 2014 10:00:57 +0000
From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
To: XU Liang <liang.xu@cinfotech.cn>, "dev@dpdk.org" <dev@dpdk.org>
Thread-Topic: [PATCH v6] eal: map uio resources after hugepages when the
base_virtaddr is configured.
Thread-Index: AQHP+mEdCoJJM6uhEkSpotX1GZcOhJxU7g3YgAAALIADate: Fri, 7 Nov 2014 10:00:57 +0000
Message-ID: <C6ECDF3AB251BE4894318F4E4512369780C07848@IRSMSX109.ger.corp.intel.com>
References: <1415193919-17361-1-git-send-email-liang.xu@cinfotech.cn>
<1415347284-15468-1-git-send-email-liang.xu@cinfotech.cn>,
C6ECDF3AB251BE4894318F4E4512369780C07822@IRSMSX109.ger.corp.intel.com
<2c2ad9a4-1c04-4641-9667-249617ae2c56@cinfotech.cn>
In-Reply-To: <2c2ad9a4-1c04-4641-9667-249617ae2c56@cinfotech.cn>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [163.33.239.180]
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
X-Content-Filtered-By: Mailman/MimeDel 2.1.15
Subject: Re: [dpdk-dev] [PATCH v6] eal: map uio resources after hugepages
when the base_virtaddr is configured.
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
<mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
<mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Nov 2014 09:53:50 -0000
QWgsIHllcywgc29ycnkgYWJvdXQgdGhhdCwgaGF2ZW7igJl0IHF1aXRlIHdva2UgdXAgeWV0IOKY
uSBZb3XigJlyZSByaWdodC4gU28gaXTigJlzIHJlbW92aW5nIHRoZSBkZXBlbmRlbmN5IG9uIC0t
YmFzZS12aXJ0YWRkciwgbW92aW5nIHRoZSBmdW5jdGlvbiB0byBlYWxfcGNpLmMgIGFuZCBhZGRp
bmcgc2ltaWxhciBWRklPIGNvZGUgdGhhdOKAmXMgbGVmdCB0aGVuLg0KDQpUaGFua3MsDQpBbmF0
b2x5DQoNCkZyb206IFhVIExpYW5nIFttYWlsdG86bGlhbmcueHVAY2luZm90ZWNoLmNuXQ0KU2Vu
dDogRnJpZGF5LCBOb3ZlbWJlciA3LCAyMDE0IDk6NTcgQU0NClRvOiBCdXJha292LCBBbmF0b2x5
OyBkZXZAZHBkay5vcmcNCkNjOiB0aG9tYXMubW9uamFsb25ANndpbmQuY29tOyBEZSBMYXJhIEd1
YXJjaCwgUGFibG8NClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjZdIGVhbDogbWFwIHVpbyByZXNvdXJj
ZXMgYWZ0ZXIgaHVnZXBhZ2VzIHdoZW4gdGhlIGJhc2VfdmlydGFkZHIgaXMgY29uZmlndXJlZC4N
Cg0KSG93IHRvIGZpbmQgdGhlIG1heGltdW0gZW5kIHZpcnR1YWwgYWRkcmVzcyA/IEknbSBub3Qg
dGhlIERQREsgZXhwZXJ0LCBidXQgSSB3aWxsIHRyeSB0byBkbyBteSBiZXN0Lg0KDQpJZiB0aGUg
c2VnbWVudHMgaXNuJ3Qgb3ZlcmxhcCwgImlmKHNlZy0+YWRkciA+IGxhc3QtPmFkZHIpIGxhc3Qg
PSBzZWc7IiBhbHJlYWR5IGZpbmQgdGhlIHNlZ21lbnQgd2l0aCBtYXhpbXVtIGVuZCB2aXJ0dWFs
IGFkZHJlc3MuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRnJvbTpCdXJha292LCBBbmF0b2x5IDxhbmF0b2x5LmJ1
cmFrb3ZAaW50ZWwuY29tPG1haWx0bzphbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPj4NClRpbWU6
MjAxNCBOb3YgNyAoRnJpKSAxNyA6IDQ3DQpUbzrlvpDkuq4gPGxpYW5nLnh1QGNpbmZvdGVjaC5j
bjxtYWlsdG86bGlhbmcueHVAY2luZm90ZWNoLmNuPj4sIGRldkBkcGRrLm9yZzxtYWlsdG86ZGV2
QGRwZGsub3JnPiA8ZGV2QGRwZGsub3JnPG1haWx0bzpkZXZAZHBkay5vcmc+Pg0KQ2M6dGhvbWFz
Lm1vbmphbG9uQDZ3aW5kLmNvbSA8dGhvbWFzLm1vbmphbG9uQDZ3aW5kLmNvbTxtYWlsdG86dGhv
bWFzLm1vbmphbG9uQDZ3aW5kLmNvbT4+LCBEZSBMYXJhIEd1YXJjaCwgUGFibG8gPHBhYmxvLmRl
LmxhcmEuZ3VhcmNoQGludGVsLmNvbTxtYWlsdG86cGFibG8uZGUubGFyYS5ndWFyY2hAaW50ZWwu
Y29tPj4NClN1YmplY3Q6UkU6IFtQQVRDSCB2Nl0gZWFsOiBtYXAgdWlvIHJlc291cmNlcyBhZnRl
ciBodWdlcGFnZXMgd2hlbiB0aGUgYmFzZV92aXJ0YWRkciBpcyBjb25maWd1cmVkLg0KDQpUaGUg
Y29tbWl0IG1lc3NhZ2UgbG9va3MgZmluZSB0byBtZSwgYnV0IFZGSU8gY29kZSBuZWVkcyB0byBi
ZSBhZGp1c3RlZCB0aGUgc2FtZSB3YXkuDQoNCkFsc28sIG5vdyB0aGF0IEkgdGhpbmsgb2YgaXQs
IHlvdSBjYW4ndCBzaW1wbHkgYXNzdW1lIHRoYXQgd2hhdGV2ZXIgbGFzdCBtZW1zZWcgeW91IGhh
dmUgaGFzIHRoZSBsYXRlc3QgdmlydHVhbCBhZGRyZXNzLiBXaGVuIElWU0hNRU0gaXMgaW5pdGlh
bGl6ZWQsIGl0IHRvbyByZXNlcnZlcyBzb21lIHNwYWNlIGluIHRoZSB2aXJ0dWFsIG1lbW9yeSwg
d2hpY2ggY2FuIGJlIGhpZ2hlciB0aGFuIHRoZSBsYXN0IGh1Z2VwYWdlLCBidXQgbm90IGJlIHRo
ZSBsYXN0IGh1Z2VwYWdlIChiZWNhdXNlIElWU0hNRU0gbWVtb3J5IGlzIGZpcnN0IHRvIGJlIHJl
c2VydmVkLCBiZWZvcmUgdGhlIG1haW4gbWVtb3J5KS4NCg0KTXkgYWR2aWNlIHdvdWxkIGJlIHRv
IHJld3JpdGUgdGhlIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgbWF4aW11bSBlbmQgdmlydHVhbCBh
ZGRyZXNzIChpbnN0ZWFkIG9mIGEgbGFzdCBzZWdtZW50KSBhbmQgbW92ZSBpdCB0byBlYWxfcGNp
LmMgKGFuZCBpbmNsdWRlIGRlY2xhcmF0aW9uIGZvciBpdCBpbiBpbmNsdWRlL2VhbF9wY2lfaW5p
dC5oKS4NCg0KTXkgYXBvbG9naWVzIGZvciBub3QgdGhpbmtpbmcgYWJvdXQgYW55IG9mIHRoaXMg
ZHVyaW5nIHRoZSBmaXJzdCA2IGl0ZXJhdGlvbnMgb2YgdGhlIHBhdGNoIDooDQoNClRoYW5rcywN
CkFuYXRvbHkNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGx4dSBbbWFpbHRv
OmxpYW5nLnh1QGNpbmZvdGVjaC5jbl0NClNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgNywgMjAxNCA4
OjAxIEFNDQpUbzogZGV2QGRwZGsub3JnPG1haWx0bzpkZXZAZHBkay5vcmc+DQpDYzogQnVyYWtv
diwgQW5hdG9seTsgdGhvbWFzLm1vbmphbG9uQDZ3aW5kLmNvbTxtYWlsdG86dGhvbWFzLm1vbmph
bG9uQDZ3aW5kLmNvbT47IERlIExhcmEgR3VhcmNoLCBQYWJsbw0KU3ViamVjdDogW1BBVENIIHY2
XSBlYWw6IG1hcCB1aW8gcmVzb3VyY2VzIGFmdGVyIGh1Z2VwYWdlcyB3aGVuIHRoZSBiYXNlX3Zp
cnRhZGRyIGlzIGNvbmZpZ3VyZWQuDQoNCkEgbXVsdGlwbGUgcHJvY2VzcyBEUERLIGFwcGxpY2F0
aW9uIG11c3QgbW1hcCBodWdlcGFnZXMgYW5kIHBjaSByZXNvdXJjZSBpbnRvIHNhbWUgdmlydHVh
bCBhZGRyZXNzZXMuIEJ5IGRlZmF1bHQgdGhlIHZpcnR1YWwgYWRkcmVzc2VzIGNob3NlbiBieSB0
aGUgcHJpbWFyeSBwcm9jZXNzIGF1dG9tYXRpY2FsbHkgd2hlbiBjYWxsaW5nIHRoZSBtbWFwLiBC
dXQgc29tZXRpbWUgdGhlIHZpcnR1YWwgYWRkcmVzc2VzIGNob3NlbiBieSB0aGUgcHJpbWFyeSBw
cm9jZXNzIGlzbid0IHVzYWJsZSBhdCBzZWNvbmRhcnkgcHJvY2Vzcy4gU3VjaCBhcyB0aGUgc2Vj
b25kYXJ5IHByb2Nlc3MgbGlua2VkIHdpdGggbW9yZSBsaWJyYXJpZXMgdGhhbiBwcmltYXJ5IHBy
b2Nlc3MuIFRoZSBsaWJyYXJ5IGhhcyBiZWVuIG1hcHBlZCBpbnRvIHRoaXMgdmlydHVhbCBhZGRy
ZXNzLiBUaGUgY29tbWFuZCBsaW5lIHBhcmFtZXRlciAnYmFzZS12aXJ0YWRkcicgaGFzIGJlZW4g
YWRkZWQgZm9yIHRoaXMgc2l0dWF0aW9uLiBJZiBpdCdzIGNvbmZpZ3VyZWQsIHRoZSBodWdlcGFn
ZXMgd2lsbCBiZSBtYXBwZWQgaW50byB0aGlzIGJhc2UgYWRkcmVzcy4gQnV0IHRoZSB2aXJ0dWFs
IGFkZHJlc3Mgb2YgdWlvIHJlc291cmNlIG1hcHBlZCBzdGlsbCBkb2VzIG5vdCByZWZlciB0byB0
aGUgcGFyYW1ldGVyLiBJbiB0aGF0IGNhc2UgaXQgd291bGQgc3RpbGwgZmFpbC4NCg0KVGhpcyBw
YXRjaCB0cnkgdG8gbWFwIHVpbyByZXNvdXJjZXMgYWZ0ZXIgaHVnZXBhZ2VzIHdoZW4gdGhlIGJh
c2VfdmlydGFkZHIgaXMgY29uZmlndXJlZC4gU28gdGhlIGVycm9yIG9mICJFQUw6IHBjaV9tYXBf
cmVzb3VyY2UoKTogY2Fubm90IG1tYXAiIGNhbiBiZSByZXNvbHZlZCBieSBzZXQgYmFzZS12aXJ0
YWRkciBpbnRvIGZyZWUgdmlydHVhbCBhZGRyZXNzIHNwYWNlLg0KDQpTaWduZWQtb2ZmLWJ5OiBs
eHUgPGxpYW5nLnh1QGNpbmZvdGVjaC5jbjxtYWlsdG86bGlhbmcueHVAY2luZm90ZWNoLmNuPj4N
Ci0tLQ0KbGliL2xpYnJ0ZV9lYWwvbGludXhhcHAvZWFsL2VhbF9wY2lfdWlvLmMgfCAyOSArKysr
KysrKysrKysrKysrKysrKysrKysrKysrLQ0KMSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMo
KyksIDEgZGVsZXRpb24oLSkNCg0KZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZWFsL2xpbnV4YXBw
L2VhbC9lYWxfcGNpX3Vpby5jIGIvbGliL2xpYnJ0ZV9lYWwvbGludXhhcHAvZWFsL2VhbF9wY2lf
dWlvLmMNCmluZGV4IDdlNjIyNjYuLmEyYzlhYjYgMTAwNjQ0DQotLS0gYS9saWIvbGlicnRlX2Vh
bC9saW51eGFwcC9lYWwvZWFsX3BjaV91aW8uYw0KKysrIGIvbGliL2xpYnJ0ZV9lYWwvbGludXhh
cHAvZWFsL2VhbF9wY2lfdWlvLmMNCkBAIC0yNzMsNiArMjczLDI0IEBAIHBjaV9nZXRfdWlvX2Rl
dihzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldiwgY2hhciAqZHN0YnVmLA0KcmV0dXJuIHVpb19u
dW07DQp9DQoNCitzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBydGVfbWVtc2VnICoNCitnZXRf
cGh5c21lbV9sYXN0KHZvaWQpDQorew0KKyBjb25zdCBzdHJ1Y3QgcnRlX21lbXNlZyAqIHNlZyA9
IHJ0ZV9lYWxfZ2V0X3BoeXNtZW1fbGF5b3V0KCk7DQorIGNvbnN0IHN0cnVjdCBydGVfbWVtc2Vn
ICogbGFzdCA9IHNlZzsNCisgdW5zaWduZWQgaSA9IDA7DQorDQorIGZvciAoaT0wOyBpPFJURV9N
QVhfTUVNU0VHOyBpKyssIHNlZysrKSB7DQorIGlmIChzZWctPmFkZHIgPT0gTlVMTCkNCisgYnJl
YWs7DQorDQorIGlmKHNlZy0+YWRkciA+IGxhc3QtPmFkZHIpDQorIGxhc3QgPSBzZWc7DQorDQor
IH0NCisgcmV0dXJuIGxhc3Q7DQorfQ0KKw0KLyogbWFwIHRoZSBQQ0kgcmVzb3VyY2Ugb2YgYSBQ
Q0kgZGV2aWNlIGluIHZpcnR1YWwgbWVtb3J5ICovIGludCBwY2lfdWlvX21hcF9yZXNvdXJjZShz
dHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldikgQEAgLTI5MCw2ICszMDgsMTMgQEAgcGNpX3Vpb19t
YXBfcmVzb3VyY2Uoc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpkZXYpDQpzdHJ1Y3QgbWFwcGVkX3Bj
aV9yZXNvdXJjZSAqdWlvX3JlczsNCnN0cnVjdCBwY2lfbWFwICptYXBzOw0KDQorIC8qIG1hcCB1
aW8gcmVzb3VyY2UgaW50byB1c2VyIHJlcXVpcmVkIHZpcnR1YWwgYWRkcmVzcyAqLw0KKyBzdGF0
aWMgdm9pZCAqIHJlcXVlc3RlZF9hZGRyOw0KKyBpZiAoaW50ZXJuYWxfY29uZmlnLmJhc2Vfdmly
dGFkZHIgJiYgTlVMTCA9PSByZXF1ZXN0ZWRfYWRkcikgew0KKyBjb25zdCBzdHJ1Y3QgcnRlX21l
bXNlZyAqIGxhc3QgPSBnZXRfcGh5c21lbV9sYXN0KCk7DQorIHJlcXVlc3RlZF9hZGRyID0gUlRF
X1BUUl9BREQobGFzdC0+YWRkciwgbGFzdC0+bGVuKTsNCisgfQ0KKw0KZGV2LT5pbnRyX2hhbmRs
ZS5mZCA9IC0xOw0KZGV2LT5pbnRyX2hhbmRsZS50eXBlID0gUlRFX0lOVFJfSEFORExFX1VOS05P
V047DQoNCkBAIC0zNzEsMTAgKzM5NiwxMiBAQCBwY2lfdWlvX21hcF9yZXNvdXJjZShzdHJ1Y3Qg
cnRlX3BjaV9kZXZpY2UgKmRldikNCmlmIChtYXBzW2pdLmFkZHIgIT0gTlVMTCkNCmZhaWwgPSAx
Ow0KZWxzZSB7DQotIG1hcGFkZHIgPSBwY2lfbWFwX3Jlc291cmNlKE5VTEwsIGZkLCAob2ZmX3Qp
b2Zmc2V0LA0KKyBtYXBhZGRyID0gcGNpX21hcF9yZXNvdXJjZShyZXF1ZXN0ZWRfYWRkciwgZmQs
IChvZmZfdClvZmZzZXQsDQooc2l6ZV90KW1hcHNbal0uc2l6ZSk7DQppZiAobWFwYWRkciA9PSBO
VUxMKQ0KZmFpbCA9IDE7DQorIGVsc2UgaWYgKE5VTEwgIT0gcmVxdWVzdGVkX2FkZHIpDQorIHJl
cXVlc3RlZF9hZGRyID0gUlRFX1BUUl9BREQobWFwYWRkciwgbWFwc1tqXS5zaXplKTsNCn0NCg0K
aWYgKGZhaWwpIHsNCi0tDQoxLjkuMQ0K
next prev parent reply other threads:[~2014-11-07 9:47 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-05 13:25 [dpdk-dev] [PATCH] " lxu
2014-11-05 15:10 ` Burakov, Anatoly
2014-11-05 15:49 ` [dpdk-dev] 答复: " XU Liang
2014-11-05 15:59 ` Burakov, Anatoly
2014-11-05 16:10 ` [dpdk-dev] 答复:答复: " XU Liang
2014-11-26 1:46 ` Qiu, Michael
2014-11-26 9:58 ` Burakov, Anatoly
2014-11-06 14:11 ` [dpdk-dev] [PATCH v2] " lxu
2014-11-06 14:27 ` Burakov, Anatoly
2014-11-06 14:48 ` [dpdk-dev] 答复:[PATCH " 徐亮
2014-11-06 14:47 ` [dpdk-dev] [PATCH v3] " lxu
2014-11-06 15:06 ` De Lara Guarch, Pablo
2014-11-06 15:07 ` [dpdk-dev] [PATCH v4] " lxu
2014-11-06 15:12 ` Thomas Monjalon
2014-11-06 15:11 ` lxu
2014-11-06 15:32 ` [dpdk-dev] [PATCH v5] " lxu
2014-11-06 15:41 ` Burakov, Anatoly
2014-11-06 15:58 ` Thomas Monjalon
2014-11-06 16:10 ` Burakov, Anatoly
2014-11-06 17:30 ` Bruce Richardson
2014-11-07 8:01 ` [dpdk-dev] [PATCH v6] " lxu
2014-11-07 9:42 ` Bruce Richardson
2014-11-07 9:47 ` Burakov, Anatoly
2014-11-07 9:57 ` XU Liang [this message]
2014-11-07 14:37 ` XU Liang
2014-11-10 11:34 ` [dpdk-dev] [PATCH v7] eal: map PCI memory resources after hugepages Anatoly Burakov
2014-11-10 13:33 ` Burakov, Anatoly
2014-11-11 3:53 ` XU Liang
2014-11-11 10:09 ` [dpdk-dev] [PATCH v8] " Anatoly Burakov
2014-11-13 11:34 ` Burakov, Anatoly
2014-11-13 12:58 ` Bruce Richardson
2014-11-13 13:44 ` Burakov, Anatoly
2014-11-13 13:46 ` Bruce Richardson
2014-11-25 17:17 ` Thomas Monjalon
2014-11-07 14:57 ` [dpdk-dev] [PATCH v7] eal: map uio " lxu
2014-11-07 15:14 ` Burakov, Anatoly
2014-11-07 15:15 ` Thomas Monjalon
2014-11-07 15:19 ` XU Liang
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=2c2ad9a4-1c04-4641-9667-249617ae2c56@cinfotech.cn \
--to=liang.xu@cinfotech.cn \
--cc=anatoly.burakov@intel.com \
--cc=dev@dpdk.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).