RE: [PATCH 1/2] eventdev/dma: reorganize event DMA ops

2024-05-16 Thread Amit Prakash Shukla
> -Original Message- > From: pbhagavat...@marvell.com > Sent: Saturday, April 6, 2024 3:43 PM > To: Jerin Jacob ; Amit Prakash Shukla > ; Vamsi Krishna Attunuru > > Cc: dev@dpdk.org; Pavan Nikhilesh Bhagavatula > > Subject: [PATCH 1/2] eventdev/dma: reorganize event DMA ops > > From: Pa

RE: [PATCH v3 1/2] eventdev/dma: reorganize event DMA ops

2024-05-16 Thread Amit Prakash Shukla
> -Original Message- > From: pbhagavat...@marvell.com > Sent: Wednesday, April 17, 2024 1:57 PM > To: Jerin Jacob ; Amit Prakash Shukla > ; Vamsi Krishna Attunuru > > Cc: dev@dpdk.org; Pavan Nikhilesh Bhagavatula > > Subject: [PATCH v3 1/2] eventdev/dma: reorganize event DMA ops > > Fro

[PATCH v1] net/cpfl: check if DPDK is running on host IMC ACC

2024-05-16 Thread Shaiq Wani
Checks if DPDK is running on host, IMC or ACC Signed-off-by: Shaiq Wani --- get_running_host_id.patch | 70 +++ 1 file changed, 70 insertions(+) create mode 100644 get_running_host_id.patch diff --git a/get_running_host_id.patch b/get_running_host_id.patch n

[PATCH v5] devtools: add .clang-format file

2024-05-16 Thread Abdullah Ömer Yamaç
clang-format is a tool to format C/C++/Objective-C code. It can be used to reformat code to match a given coding style, or to ensure that code adheres to a specific coding style. It helps to maintain a consistent coding style across the DPDK codebase. .clang-format file overrides the default style

Re: [PATCH v1] net/cpfl: check if DPDK is running on host IMC ACC

2024-05-16 Thread David Marchand
Hello Shaiq, On Thu, May 16, 2024 at 10:17 AM Shaiq Wani wrote: > > Checks if DPDK is running on host, IMC or ACC > > Signed-off-by: Shaiq Wani Thanks for the patch, though there are issues with this submission, as this patch can't be applied. Please make sure you are registered to this mailin

Re: [PATCH v5 0/4] add pointer compression API

2024-05-16 Thread Paul Szczepanek
On 15/05/2024 23:34, Morten Brørup wrote: >> From: Paul Szczepanek [mailto:paul.szczepa...@arm.com] >> >> AFAIK DPDK rte_mempool does require the addresses to be virtually >> contiguous as the memory reservation is done during creation of the >> mempool and a single memzone is reserved. > > No, it

Re: [PATCH] crypto/mvsam: fix build

2024-05-16 Thread Thomas Monjalon
15/05/2024 18:34, Thomas Monjalon: > When moving the alignment attribute, a semicolon was missed. > > Fixes: 27595cd83053 ("drivers: move alignment attribute on types for MSVC") > > Signed-off-by: Thomas Monjalon > --- > -} > +}; Applied

Re: [PATCH] bus/pci: fix build with musl 1.2.4 / Alpine 3.19

2024-05-16 Thread Thomas Monjalon
15/05/2024 19:26, Thomas Monjalon: > 29/04/2024 16:09, Patrick Robb: > > On Mon, Apr 29, 2024 at 6:01 AM David Marchand > > wrote: > > > > > Following an upgrade of musl, pread64/pwrite64 wrappers are not provided > > > anymore. Switch to POSIX pread/pwrite. > > > > > > Bugzilla ID: 1422 > > > Cc

RE: RE: [PATCH v5 0/4] add pointer compression API

2024-05-16 Thread Konstantin Ananyev
> > From: Paul Szczepanek [mailto:paul.szczepa...@arm.com] > > Sent: Wednesday, 15 May 2024 19.01 > > > > On 04/03/2024 14:44, Konstantin Ananyev wrote: > > >> This feature is targeted for pipeline mode of applications. We see > > many customers using pipeline mode. This feature helps in reducing

Re: RSS Hash value returned by the gvnic pmd dpdk driver not matching Toeplitz

2024-05-16 Thread Ferruh Yigit
On 5/15/2024 9:20 AM, Nagesh Mallappa wrote: > Hi Team, > > We are using a C3 GCP instance having GVNIC with DPDK enabled. > We are using latest version of DPDK ( dpdk-24.03 ) to configure RSS key, > we understand C3 GCP instance with gvnic supports Toeplitz rss algorithm > ( Reference > -  > http

DPDK Release Status Meeting 2024-05-16

2024-05-16 Thread Mcnamara, John
Release status meeting minutes 2024-05-16 = Agenda: * Release Dates * Subtrees * Roadmaps * LTS * Defects * Opens Participants: * AMD * ARM * Intel * Marvell * Nvidia * Red Hat Release Dates - The following are the current/updated working date

[PATCH] mempool: dump includes list of memory chunks

2024-05-16 Thread Morten Brørup
Added information about the memory chunks holding the objects in the mempool when dumping the status of the mempool to a file. Signed-off-by: Morten Brørup --- lib/mempool/rte_mempool.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/lib/mempool/rte_mempool.c b/lib/mempool/rte_me

pdump framework highest throughput hit bottleneck at 2.8Million pps

2024-05-16 Thread Fuji Nafiul
I modified the dpdkdump project's code (which uses the pdump framework) to scale and support the highest throughput possible. I enabled the pdump framework (which creates a hook in rx/tx in the background) with big rte_ring and then tried to fan out packets to several rte_rings (I tried with max 10

Re: [PATCH] doc: remove confusing release candidate statements

2024-05-16 Thread Ferruh Yigit
On 5/15/2024 12:05 PM, Thomas Monjalon wrote: > The help of "dpdk-next-*" repositories is welcome at all stages, > except maybe during the last release candidate. > Better to remove statements about a time limit, > and let decisions happen on the fly. > > Signed-off-by: Thomas Monjalon > Acked-b

RE: [PATCH] bpf: don't verify classic bpfs

2024-05-16 Thread Konstantin Ananyev
> On Sun, 12 May 2024 08:55:45 +0300 > Yoav Winstein wrote: > > > When classic BPFs with lots of branching instructions are compiled, > > __rte_bpf_bpf_validate runs way too slow. A simple bpf such as: > > 'ether host a0:38:6d:af:17:eb or b3:a3:ff:b6:c1:ef or ...' 12 times > > > > results in ~

RE: 23.11.1 patches review and test

2024-05-16 Thread Xu, HailinX
> -Original Message- > From: Xueming Li > Sent: Tuesday, May 7, 2024 3:32 PM > To: sta...@dpdk.org > Cc: dev@dpdk.org; Abhishek Marathe ; > Ali Alnubani ; David Christensen > ; Hemant Agrawal ; > Stokes, Ian ; Jerin Jacob ; > Mcnamara, John ; Ju-Hyoung Lee > ; Kevin Traynor ; Luca > Boccas

Re: 23.11.1 patches review and test

2024-05-16 Thread Xueming Li
Hi Hailin, Thanks for the verficiation. From: Xu, HailinX Sent: Thursday, May 16, 2024 6:01 PM To: Xueming Li ; sta...@dpdk.org Cc: dev@dpdk.org ; Abhishek Marathe ; Ali Alnubani ; David Christensen ; Hemant Agrawal ; Stokes, Ian ; Jerin Jacob ; Mcnamara, Joh

Re: [PATCH] net/ixgbe: don't create a delayed interrupt handler if one already exists

2024-05-16 Thread Burakov, Anatoly
On 4/18/2024 3:53 PM, edwin.brosse...@6wind.com wrote: From: Edwin Brossette Since link state may need some time to stabilize after a link state change, we cannot update the link state right after one occurs. So link state change interrupts (lsc) are handled after a delay. To do this, an alarm

Re: [PATCH v2 0/6] support setting lanes

2024-05-16 Thread huangdengdui
Hi, Ferruh Sorry for replying your email very late. The answers to your questions are as follows. Please correct me if I am wrong. On 2024/4/4 21:58, Ferruh Yigit wrote: > > Hi Dengdui, Damodharam, > > As details of the implementation under discussion, I have a high level > question. > > Why/wh

Re: RSS Hash value returned by the gvnic pmd dpdk driver not matching Toeplitz

2024-05-16 Thread Nagesh Mallappa
Hi Stephen, Yes we have tried on Freebsd driver, we are hitting RCC hash issues here too. The Issue seems to be with the backend Gvnic on C3 GCP Instance. Trying to get help from the DPDK community if there is any workaround or fix for the RSS Issue on GVNIC DPDK PMD for C3 GCP Instance. Thanks,

Community CI Meeting Minutes - May 16, 2024

2024-05-16 Thread Patrick Robb
# May 16, 2024 Attendees 1. Patrick Robb 2. Ali Alnubani 3. Paul Szczepanek 4. Aaron Conole # Minutes ===

[PATCH v5 0/9] Generic 64 bit counters

2024-05-16 Thread Stephen Hemminger
Adds common code for collecting basic statistics used by many SW based PMD's such as af_packet, af_xdp, null, tap and ring. Solves the problem where counters could tear because of 32 bit load/store on 32 bit platforms. v5 - use consume/release memory order for update on 32 bit case - initializ

[PATCH v5 1/9] eal: generic 64 bit counter

2024-05-16 Thread Stephen Hemminger
This header implements 64 bit counters that are NOT atomic but are safe against load/store splits on 32 bit platforms. Signed-off-by: Stephen Hemminger Acked-by: Morten Brørup --- lib/eal/include/meson.build | 1 + lib/eal/include/rte_counter.h | 98 +++ 2 fil

[PATCH v5 2/9] ethdev: add common counters for statistics

2024-05-16 Thread Stephen Hemminger
Introduce common helper routines for keeping track of per-queue statistics in SW PMD's. The code in several drivers had copy/pasted the same code for this, but had common issues with 64 bit counters on 32 bit platforms. Signed-off-by: Stephen Hemminger --- lib/ethdev/ethdev_swstats.c | 109 +

[PATCH v5 3/9] net/af_packet: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use the new generic SW stats. Signed-off-by: Stephen Hemminger --- drivers/net/af_packet/rte_eth_af_packet.c | 82 --- 1 file changed, 14 insertions(+), 68 deletions(-) diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c index

[PATCH v5 4/9] net/af_xdp: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use common code for all SW stats. Signed-off-by: Stephen Hemminger --- drivers/net/af_xdp/rte_eth_af_xdp.c | 98 - 1 file changed, 25 insertions(+), 73 deletions(-) diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c index 268a130c

[PATCH v5 5/9] net/pcap: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use common statistics for SW drivers. Signed-off-by: Stephen Hemminger --- drivers/net/pcap/pcap_ethdev.c | 125 +++-- 1 file changed, 26 insertions(+), 99 deletions(-) diff --git a/drivers/net/pcap/pcap_ethdev.c b/drivers/net/pcap/pcap_ethdev.c index bfec085045..b1a

[PATCH v5 6/9] test/pmd_ring: initialize mbufs

2024-05-16 Thread Stephen Hemminger
Do not pass uninitialized mbuf into the ring PMD. The mbuf should be initialized first so that length is zero. Signed-off-by: Stephen Hemminger --- app/test/test_pmd_ring.c | 22 +++--- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/app/test/test_pmd_ring.c b/app/

[PATCH v5 7/9] net/ring: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use generic per-queue infrastructure. This also fixes bug where ring code was not accounting for bytes. Signed-off-by: Stephen Hemminger --- drivers/net/ring/rte_eth_ring.c | 71 + 1 file changed, 28 insertions(+), 43 deletions(-) diff --git a/drivers/net/ring/rt

[PATCH v5 8/9] net/tap: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use new common sw statistics. Signed-off-by: Stephen Hemminger --- drivers/net/tap/rte_eth_tap.c | 88 ++- drivers/net/tap/rte_eth_tap.h | 15 ++ 2 files changed, 18 insertions(+), 85 deletions(-) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/r

[PATCH v5 9/9] net/null: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use the new common code for statistics. This also fixes the bug that this driver was not accounting for bytes. Signed-off-by: Stephen Hemminger --- drivers/net/null/rte_eth_null.c | 80 +++-- 1 file changed, 17 insertions(+), 63 deletions(-) diff --git a/drivers/net/

Re: [PATCH] crypto/mvsam: fix build

2024-05-16 Thread Tyler Retzlaff
On Wed, May 15, 2024 at 06:34:14PM +0200, Thomas Monjalon wrote: > When moving the alignment attribute, a semicolon was missed. > > Fixes: 27595cd83053 ("drivers: move alignment attribute on types for MSVC") > > Signed-off-by: Thomas Monjalon > --- > drivers/crypto/mvsam/rte_mrvl_pmd.c | 2 +- >

Re: [PATCH v2 0/2] stop using mmx intrinsics

2024-05-16 Thread Thomas Monjalon
28/03/2024 17:14, Tyler Retzlaff: > MSVC does not support older MMX intrinsics use SSE/AVX instead. > > v2: > * move conditional #include into rte_vect.h and include > rte_vect.h into net_crc_avx512.c net_crc_sse.c instead of duplicating > conditional compile of include in each file. >

Re: [PATCH] hash: remove return statement from function returning void

2024-05-16 Thread Thomas Monjalon
08/03/2024 22:20, Tyler Retzlaff: > rte_thash_gfni_bulk and rte_thash_gfni_bulk_stub both return void. > Remove superfluous return statement from rte_thash_gfni_bulk. > > Fixes: 944a03a5cfc1 ("hash: fix MSVC link on GFNI stubs") > Cc: step...@networkplumber.org > > Signed-off-by: Tyler Retzlaff

Re: [PATCH] hash: provide crc32 functions based on intrinsics

2024-05-16 Thread Thomas Monjalon
20/03/2024 22:28, Tyler Retzlaff: > Provide crc32 inline functions implemented using intrinsics for MSVC. This is replacing asm. Could we completely replace asm, avoiding the #ifdef?

Re: [PATCH] hash: cast away atomic qualification

2024-05-16 Thread Thomas Monjalon
16/04/2024 18:06, Tyler Retzlaff: > rte_free accepts only non-cva qualified arguments so cast away > RTE_ATOMIC qualification for tbl_chng_cnt and h->tbl_chng_cnt when > calling rte_free. > > Signed-off-by: Tyler Retzlaff Please add an explanation about the case where it does not compile.

Re: [PATCH] eal: fix missing type in dtor macro expansion

2024-05-16 Thread Thomas Monjalon
16/04/2024 20:16, Morten Brørup: > > From: Tyler Retzlaff [mailto:roret...@linux.microsoft.com] > > Sent: Tuesday, 16 April 2024 18.33 > > > > RTE_FINI expansion failed to specify void * type for storage of > > destructor function pointer resulting it defaulting to type ``int``. > > > > Update th

RE: [PATCH v5 1/9] eal: generic 64 bit counter

2024-05-16 Thread Wathsala Wathawana Vithanage
Hi Stephen, > +__rte_experimental > +static inline uint64_t > +rte_counter64_fetch(const rte_counter64_t *counter) { > + return *counter; > +} What if the address pointed by counter is not aligned and the architecture doesn't support atomic (untorn) loads on non-aligned loads? --wathsala

RE: [PATCH v5 2/9] ethdev: add common counters for statistics

2024-05-16 Thread Wathsala Wathawana Vithanage
> + packets = rte_counter64_fetch(&counters->packets); > + bytes = rte_counter64_fetch(&counters->bytes); > + errors = rte_counter64_fetch(&counters->errors); > + > + rte_compiler_barrier(); > + > + stats->ipackets += packets; > +

Re: [PATCH v5 1/9] eal: generic 64 bit counter

2024-05-16 Thread Stephen Hemminger
On Thu, 16 May 2024 18:22:23 + Wathsala Wathawana Vithanage wrote: > Hi Stephen, > > > +__rte_experimental > > +static inline uint64_t > > +rte_counter64_fetch(const rte_counter64_t *counter) { > > + return *counter; > > +} > > What if the address pointed by counter is not aligned and t

[DPDK/ethdev Bug 1442] uninitalized warning when ASAN enabled in hns3 PMD

2024-05-16 Thread bugzilla
https://bugs.dpdk.org/show_bug.cgi?id=1442 Bug ID: 1442 Summary: uninitalized warning when ASAN enabled in hns3 PMD Product: DPDK Version: 24.03 Hardware: All OS: All Status: UNCONFIRMED Severity: normal

[PATCH v6 0/9] Generic 64 bit counters for SW drivers

2024-05-16 Thread Stephen Hemminger
Adds common code for collecting basic statistics used by many SW based PMD's such as af_packet, af_xdp, null, tap and ring. Solves the problem where counters could tear because of 32 bit load/store on 32 bit platforms. v6 - address initialization of mbuf in test/pmd_ring Stephen Hemminger (9):

[PATCH v6 1/9] eal: generic 64 bit counter

2024-05-16 Thread Stephen Hemminger
This header implements 64 bit counters that are NOT atomic but are safe against load/store splits on 32 bit platforms. Signed-off-by: Stephen Hemminger Acked-by: Morten Brørup --- lib/eal/include/meson.build | 1 + lib/eal/include/rte_counter.h | 98 +++ 2 fil

[PATCH v6 2/9] ethdev: add common counters for statistics

2024-05-16 Thread Stephen Hemminger
Introduce common helper routines for keeping track of per-queue statistics in SW PMD's. The code in several drivers had copy/pasted the same code for this, but had common issues with 64 bit counters on 32 bit platforms. Signed-off-by: Stephen Hemminger --- lib/ethdev/ethdev_swstats.c | 109 +

[PATCH v6 3/9] net/af_packet: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use the new generic SW stats. Signed-off-by: Stephen Hemminger --- drivers/net/af_packet/rte_eth_af_packet.c | 82 --- 1 file changed, 14 insertions(+), 68 deletions(-) diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c index

[PATCH v6 4/9] net/af_xdp: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use common code for all SW stats. Signed-off-by: Stephen Hemminger --- drivers/net/af_xdp/rte_eth_af_xdp.c | 98 - 1 file changed, 25 insertions(+), 73 deletions(-) diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c index 268a130c

[PATCH v6 5/9] net/pcap: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use common statistics for SW drivers. Signed-off-by: Stephen Hemminger --- drivers/net/pcap/pcap_ethdev.c | 125 +++-- 1 file changed, 26 insertions(+), 99 deletions(-) diff --git a/drivers/net/pcap/pcap_ethdev.c b/drivers/net/pcap/pcap_ethdev.c index bfec085045..b1a

[PATCH v6 6/9] test/pmd_ring: initialize mbufs

2024-05-16 Thread Stephen Hemminger
Do not pass uninitialized data into the ring PMD. The mbufs should be initialized first so that length is zero. Signed-off-by: Stephen Hemminger --- app/test/test_pmd_ring.c | 26 +- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/app/test/test_pmd_ring.c b

[PATCH v6 7/9] net/ring: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use generic per-queue infrastructure. This also fixes bug where ring code was not accounting for bytes. Signed-off-by: Stephen Hemminger --- drivers/net/ring/rte_eth_ring.c | 71 + 1 file changed, 28 insertions(+), 43 deletions(-) diff --git a/drivers/net/ring/rt

[PATCH v6 8/9] net/tap: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use new common sw statistics. Signed-off-by: Stephen Hemminger --- drivers/net/tap/rte_eth_tap.c | 88 ++- drivers/net/tap/rte_eth_tap.h | 15 ++ 2 files changed, 18 insertions(+), 85 deletions(-) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/r

[PATCH v6 9/9] net/null: use generic SW stats

2024-05-16 Thread Stephen Hemminger
Use the new common code for statistics. This also fixes the bug that this driver was not accounting for bytes. Signed-off-by: Stephen Hemminger --- drivers/net/null/rte_eth_null.c | 80 +++-- 1 file changed, 17 insertions(+), 63 deletions(-) diff --git a/drivers/net/

Re: [PATCH v5 1/9] eal: generic 64 bit counter

2024-05-16 Thread Honnappa Nagarahalli
> On May 16, 2024, at 4:42 PM, Stephen Hemminger > wrote: > > On Thu, 16 May 2024 18:22:23 + > Wathsala Wathawana Vithanage wrote: > >> Hi Stephen, >> >>> +__rte_experimental >>> +static inline uint64_t >>> +rte_counter64_fetch(const rte_counter64_t *counter) { >>> + return *counter; >>

Re: [PATCH v6 1/9] eal: generic 64 bit counter

2024-05-16 Thread Honnappa Nagarahalli
> On May 16, 2024, at 7:12 PM, Stephen Hemminger > wrote: > > This header implements 64 bit counters that are NOT atomic > but are safe against load/store splits on 32 bit platforms. > > Signed-off-by: Stephen Hemminger > Acked-by: Morten Brørup > --- > lib/eal/include/meson.build | 1 +

Re: [PATCH v5 1/9] eal: generic 64 bit counter

2024-05-16 Thread Stephen Hemminger
On Fri, 17 May 2024 02:39:02 + Honnappa Nagarahalli wrote: > > On May 16, 2024, at 4:42 PM, Stephen Hemminger > > wrote: > > > > On Thu, 16 May 2024 18:22:23 + > > Wathsala Wathawana Vithanage wrote: > > > >> Hi Stephen, > >> > >>> +__rte_experimental > >>> +static inline uint64

Re: [PATCH v6 1/9] eal: generic 64 bit counter

2024-05-16 Thread Honnappa Nagarahalli
+ Bruce for feedback on x86 architecture > On May 16, 2024, at 10:30 PM, Stephen Hemminger > wrote: > > On Fri, 17 May 2024 02:45:12 + > Honnappa Nagarahalli wrote: > >>> + * A counter is 64 bit value that is safe from split read/write >>> + * on 32 bit platforms. It assumes that only on

Re: [PATCH v5 1/9] eal: generic 64 bit counter

2024-05-16 Thread Honnappa Nagarahalli
> On May 16, 2024, at 10:29 PM, Stephen Hemminger > wrote: > > On Fri, 17 May 2024 02:39:02 + > Honnappa Nagarahalli wrote: > >>> On May 16, 2024, at 4:42 PM, Stephen Hemminger >>> wrote: >>> >>> On Thu, 16 May 2024 18:22:23 + >>> Wathsala Wathawana Vithanage wrote: >>> Hi

[PATCH] net/cpfl: get running host ID

2024-05-16 Thread Shaiq Wani
Check whether CPFL PMD runs on host IMC or ACC Signed-off-by: Shaiq Wani --- drivers/net/cpfl/cpfl_ethdev.c | 25 + drivers/net/cpfl/cpfl_ethdev.h | 6 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl

RE: [PATCH v6 1/9] eal: generic 64 bit counter

2024-05-16 Thread Morten Brørup
> From: Honnappa Nagarahalli [mailto:honnappa.nagaraha...@arm.com] > Sent: Friday, 17 May 2024 06.27 > > + Bruce for feedback on x86 architecture > > > On May 16, 2024, at 10:30 PM, Stephen Hemminger > wrote: > > > > On Fri, 17 May 2024 02:45:12 + > > Honnappa Nagarahalli wrote: > > > >>> +