From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5E988A04C1; Wed, 20 Nov 2019 15:40:22 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B5484271; Wed, 20 Nov 2019 15:40:20 +0100 (CET) Received: from mail-ot1-f67.google.com (mail-ot1-f67.google.com [209.85.210.67]) by dpdk.org (Postfix) with ESMTP id 3CF26235 for ; Wed, 20 Nov 2019 15:40:19 +0100 (CET) Received: by mail-ot1-f67.google.com with SMTP id z25so21403788oti.5 for ; Wed, 20 Nov 2019 06:40:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=rwSwj1u2dx1aDKOiog7abZrcBIxBxjBvhT95G4nhgnk=; b=puHChqvEZpfzLPnHGtg/D40MBAyQ/1aHdfAJjm4dHt5vZcIV0FKBKrr6mSsuQiY0yF SWTSUmjRr5uG0k8kh/uuS1LAXMZYUqV/Nhy7PD7x8BhJK4VOOxYETGSjj1vifKkMr2rv myEuAvEOk0VsdnAwc8vYD9gFIew+Lg5il/tw1/j4/K1VWt1Ig0YxndqajrC/5Gh6LFQH Fds8ZEApmHe2njA07psXwvF62lFOkYkb9pZHOPldiQ2I6g076pLtj2DREva0RVIoE3Nt KD1QjmnPYj351rrOl2hHh8RpTHwZe+aHObEC6ljItswqc3C8itLZHUTMysymcXSQsYGO MyIg== X-Gm-Message-State: APjAAAUnfx4upn6B68Hdz0wp6A2YSHPiAtsdv5ZEx4x8mpx1qjbxH/13 tC8VNGZXS1j6Qu+OUKZjc2t10u9Dxx4QtsUXtlU= X-Google-Smtp-Source: APXvYqxQyKUP2PtYp3mDmkrDly8SaYWokMR4IzoSb8XVn6H13lJvozyQmB/8pxL2cXIf9ta7P+pLTIW4yJAxrOFGYkk= X-Received: by 2002:a05:6830:1512:: with SMTP id k18mr2252172otp.123.1574260818376; Wed, 20 Nov 2019 06:40:18 -0800 (PST) MIME-Version: 1.0 From: ASM Date: Wed, 20 Nov 2019 17:40:07 +0300 Message-ID: To: pbonzini@redhat.com, anthony.perard@citrix.com, dev@dpdk.org, tiwei.bie@intel.com, jianfeng.tan@intel.com Content-Type: text/plain; charset="UTF-8" Subject: [dpdk-dev] PCI memory sync (kvm,dpdk,e1000,packet stalled) X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi folks! I trying solve the problem, with packets stopping (e1000,tap,kvm). My studies led to the following: 1. From flatview_write_continue() I see, what e1000 writes the number "7" to the STAT register. 2. The driver from target OS reads STAT register with number "7" and writes to the register the number "0". 3. From flatview_write_continue() (I make edits): memcpy(ptr, buf, l); new1=ptr[0xc]; usleep(100); new2=ptr[0xc]; invalidate_and_set_dirty(mr, addr1, l); new3=ptr[0xc]; printf("Old: %i, new1, %i, new2: %i, new3: %i\n", old,new1,new2,new3); I see what memory in first printf is "7", but after usleep() is "0". Do I understand correctly that this should not be? Or RCU lock suggests the ability to the multiple writers? The problem is that qemu(e1000) writes the number 7, after which target(dpdk driver) reads 7, on the basis of this it writes the number 0, but as a result (extremely rarely), the value STATUS still remains 7. Therefore, packet processing is interrupted. This behavior is observed only on kvm (it is not observed on tcg). Please help with advice or ideas. P.S. I started a bug report earlier. There is more detailed information. In my broken English: bugs.launchpad.net/qemu/+bug/1853123 --- Best regards, Leonid Myravjev