From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lb0-f176.google.com (mail-lb0-f176.google.com [209.85.217.176]) by dpdk.org (Postfix) with ESMTP id 6C6C55A76 for ; Thu, 5 Mar 2015 09:46:23 +0100 (CET) Received: by lbiw7 with SMTP id w7so10457871lbi.7 for ; Thu, 05 Mar 2015 00:46:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=hTEFghSLVdpcz+c1gqXVRQT8gqPDUmQeF30sc6CUoIc=; b=dydakjLU6XYKhHfugiMMmuIGCGqehhuhBtElpvjIfxyS20Y+Hw71shysHDXhENRVzs 844IzuYQXcqIgMl4lRvIbaxzr/F0hESj0hQq/5ZgIF6H0OeMO6F1kCLBw2Mwbt9PpFo5 3S/MU6rXd4UOUPrwshMKIppnnzRI4IKYEe/yvf/yL+MsdVdx2rugTFT/PEyiLqZ39UTM 1EDAC8AbyYGLx1MdPE5uivtzzzn11qaysue9teUcArWhaZugJ65fkbIoxDzQk3G1rX30 pUXl5sFhg/tqqAFzoimiNcqtf6msnLrKXW+gq4nf2NE2ezsUwh6SJuiYHhNBpWOixIZ9 S7Zg== MIME-Version: 1.0 X-Received: by 10.112.130.195 with SMTP id og3mr6768758lbb.112.1425545183075; Thu, 05 Mar 2015 00:46:23 -0800 (PST) Received: by 10.112.78.65 with HTTP; Thu, 5 Mar 2015 00:46:23 -0800 (PST) Date: Thu, 5 Mar 2015 14:16:23 +0530 Message-ID: From: Parikshith Chowdaiah To: dev@dpdk.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] rte_prefetch0() performance info X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Mar 2015 08:46:23 -0000 Hi all, I have a question related to usage of rte_prefetch0() function,In one of the sample files, we have implementation like: /* Prefetch first packets */ for (j = 0; j < PREFETCH_OFFSET && j < nb_rx; j++) { rte_prefetch0(rte_pktmbuf_mtod( pkts_burst[j], void *)); } /* Prefetch and forward already prefetched packets */ for (j = 0; j < (nb_rx - PREFETCH_OFFSET); j++) { rte_prefetch0(rte_pktmbuf_mtod(pkts_burst[ j + PREFETCH_OFFSET], void *)); l3fwd_simple_forward(pkts_burst[j], portid, qconf); } /* Forward remaining prefetched packets */ for (; j < nb_rx; j++) { l3fwd_simple_forward(pkts_burst[j], portid, qconf); } where the prefetch0() is carried out in multiple split iterations, would like to have an insight on whether it makes performance improvement to likes of: for (j = 0; j < nb_rx; j++) { rte_prefetch0(rte_pktmbuf_mtod( pkts_burst[j], void *)); } and how frequent rte_prefetch() needs to called for the same packet. and any mechanisms to call in bulk for 64 packets at once ? thanks Parikshith