Bill Fischofer [mailto:bill.fischo...@linaro.org] wrote:
> On Fri, Sep 8, 2017 at 6:10 AM, Janne Peltonen
> wrote:
> >
> >
> > On Fri, 8 Sep 2017, Nikhil Agarwal wrote:
> >> On 7 September 2017 at 14:09, Peltonen, Janne (Nokia - FI/Espoo)
> >> wrote:>
> >> > Bill Fischofer wrote:
> >> > >
On Sun, Sep 10, 2017 at 10:33 PM, Bill Fischofer
wrote:
> Before we consider adding new synchronization APIs, we need a clearly
> defined use case for why a portable application would need this. ODP
> implementations may make use of such things based on their knowledge
> of the platform architectu
Before we consider adding new synchronization APIs, we need a clearly
defined use case for why a portable application would need this. ODP
implementations may make use of such things based on their knowledge
of the platform architecture, but ODP applications (should) have no
such platform-specific
Hi Andriy,
On Wed, Sep 6, 2017 at 12:24 PM, Andriy Berestovskyy
wrote:
> Hey Brian,
> You are right, there are no compiler barriers on master, I just was on
> api-next branch:
>
> https://git.linaro.org/lng/odp.git/tree/platform/linux-generic/arch/arm/odp_atomic.h?h=api-next#n56
How about a #def
Honnappa,
Could your proposal be simplified to: MT-safe pktio should be
deprecated because it is not a common use case. Applications will
either use MT-unsafe pktio or the MT-safe scheduler.
> 1) Polling method - in which one pkt I/O will be created for each receive
> worker thread. In this case
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 683
@@ -414,97 +490,217 @@ static inline odp_packet_hdr_t
*add_segments(odp_packet_hdr_t *pkt_hdr,
new_hdr->buf_hdr.seg[0].len = seg_len;
packet_seg_copy_
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 608
@@ -414,97 +490,217 @@ static inline odp_packet_hdr_t
*add_segments(odp_packet_hdr_t *pkt_hdr,
new_hdr->buf_hdr.seg[0].len = seg_len;
packet_seg_copy_
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 562
@@ -414,97 +490,217 @@ static inline odp_packet_hdr_t
*add_segments(odp_packet_hdr_t *pkt_hdr,
new_hdr->buf_hdr.seg[0].len = seg_len;
packet_seg_copy_
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 543
@@ -414,97 +490,217 @@ static inline odp_packet_hdr_t
*add_segments(odp_packet_hdr_t *pkt_hdr,
new_hdr->buf_hdr.seg[0].len = seg_len;
packet_seg_copy_
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 555
@@ -414,97 +490,217 @@ static inline odp_packet_hdr_t
*add_segments(odp_packet_hdr_t *pkt_hdr,
new_hdr->buf_hdr.seg[0].len = seg_len;
packet_seg_copy_
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 499
@@ -414,97 +490,217 @@ static inline odp_packet_hdr_t
*add_segments(odp_packet_hdr_t *pkt_hdr,
new_hdr->buf_hdr.seg[0].len = seg_len;
packet_seg_copy_
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 502
@@ -414,97 +490,217 @@ static inline odp_packet_hdr_t
*add_segments(odp_packet_hdr_t *pkt_hdr,
new_hdr->buf_hdr.seg[0].len = seg_len;
packet_seg_copy_
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 1993
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 747
@@ -611,80 +807,59 @@ int odp_packet_alloc_multi(odp_pool_t pool_hdl, uint32_t
len,
return num;
}
-static inline void packet_free(odp_packet_hdr_t *pkt_hdr)
+void odp_packet_f
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 806
@@ -611,80 +807,59 @@ int odp_packet_alloc_multi(odp_pool_t pool_hdl, uint32_t
len,
return num;
}
-static inline void packet_free(odp_packet_hdr_t *pkt_hdr)
+void odp_packet_f
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 1927
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 1904
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 1824
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 1915
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 102
@@ -88,19 +74,112 @@ static inline odp_buffer_t packet_to_buffer(odp_packet_t
pkt)
return (odp_buffer_t)pkt;
}
+static inline seg_entry_t *seg_entry(odp_packet_hdr_t *hdr,
+
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 1892
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 1955
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 1874
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 1868
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 1948
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 379
@@ -271,52 +336,83 @@ void packet_parse_reset(odp_packet_hdr_t *pkt_hdr)
pkt_hdr->p.l2_offset= 0;
pkt_hdr->p.l3_offset= ODP_PACKET_OFFSET_INVALID;
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 142
@@ -88,19 +74,112 @@ static inline odp_buffer_t packet_to_buffer(odp_packet_t
pkt)
return (odp_buffer_t)pkt;
}
+static inline seg_entry_t *seg_entry(odp_packet_hdr_t *hdr,
+
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 184
@@ -127,26 +199,27 @@ static inline void *packet_data(odp_packet_hdr_t *pkt_hdr)
static inline void *packet_tail(odp_packet_hdr_t *pkt_hdr)
{
- int last = packet_last_seg(pkt_hd
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_packet.c
line 83
@@ -88,19 +74,112 @@ static inline odp_buffer_t packet_to_buffer(odp_packet_t
pkt)
return (odp_buffer_t)pkt;
}
+static inline seg_entry_t *seg_entry(odp_packet_hdr_t *hdr,
+
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
test/common_plat/validation/api/packet/packet.c
line 122
@@ -2226,6 +2319,14 @@ void packet_test_ref(void)
if (odp_packet_has_ref(base_pkt) == 1) {
/* CU_ASSERT needs braces */
Comment:
This comment is now
From: Brian Brooks
Signed-off-by: Brian Brooks
Reviewed-by: Honnappa Nagarahalli
Reviewed-by: Kevin Wang
---
/** Email created from pull request 166 (brbrooks:cloud-dev)
** https://github.com/Linaro/odp/pull/166
** Patch: https://github.com/Linaro/odp/pull/166.patch
** Base sha: 344fe21a06e
From: Brian Brooks
Signed-off-by: Brian Brooks
Reviewed-by: Ola Liljedahl
---
/** Email created from pull request 166 (brbrooks:cloud-dev)
** https://github.com/Linaro/odp/pull/166
** Patch: https://github.com/Linaro/odp/pull/166.patch
** Base sha: 344fe21a06ef4273f34c4441edd0caef876517d9
*
github
/** Email created from pull request 166 (brbrooks:cloud-dev)
** https://github.com/Linaro/odp/pull/166
** Patch: https://github.com/Linaro/odp/pull/166.patch
** Base sha: 344fe21a06ef4273f34c4441edd0caef876517d9
** Merge commit sha: 8ff1431b3b5fb
From: Brian Brooks
Signed-off-by: Brian Brooks
Reviewed-by: Honnappa Nagarahalli
Reviewed-by: Yi He
---
/** Email created from pull request 166 (brbrooks:cloud-dev)
** https://github.com/Linaro/odp/pull/166
** Patch: https://github.com/Linaro/odp/pull/166.patch
** Base sha: 344fe21a06ef4273
We can discuss this during tomorrow's ARCH call, and probably further
at Connect. MT Safe is the default behavior and it's opposite ("MT
Unsafe") was added as a potential optimization when applications
assure implementations that only a single thread will be polling a
PktIn queue or adding to a Pkt
Hi,
I think there are 2 ways in which pkt I/O will be used:
1) Polling method - in which one pkt I/O will be created for each
receive worker thread. In this case, support for ODP_PKTIO_OP_MT_SAFE
is not required.
2) Event method - the scheduler is used to receive packets. In this
case the sche
36 matches
Mail list logo