From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0047.outbound.protection.outlook.com [104.47.40.47]) by dpdk.org (Postfix) with ESMTP id 88ED85589 for ; Tue, 20 Sep 2016 10:58:29 +0200 (CEST) Received: from BN3PR0301CA0042.namprd03.prod.outlook.com (10.160.180.180) by BN6PR03MB2436.namprd03.prod.outlook.com (10.168.223.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8; Tue, 20 Sep 2016 08:58:26 +0000 Received: from BN1AFFO11FD017.protection.gbl (2a01:111:f400:7c10::155) by BN3PR0301CA0042.outlook.office365.com (2a01:111:e400:4000::52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8 via Frontend Transport; Tue, 20 Sep 2016 08:58:26 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; linux.intel.com; dkim=none (message not signed) header.d=none;linux.intel.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1AFFO11FD017.mail.protection.outlook.com (10.58.52.77) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.629.5 via Frontend Transport; Tue, 20 Sep 2016 08:58:26 +0000 Received: from [127.0.0.1] (B32944-11.ap.freescale.net [10.232.14.25]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u8K8wIUt018407; Tue, 20 Sep 2016 01:58:24 -0700 To: Yuanhan Liu , "Tan, Jianfeng" References: <1473072871-16108-1-git-send-email-pankaj.chauhan@nxp.com> <1473072871-16108-2-git-send-email-pankaj.chauhan@nxp.com> <84848c11-fc26-015f-b7f8-a27d0558ef0b@nxp.com> <20160919144303.GL23158@yliu-dev.sh.intel.com> CC: , , From: Pankaj Chauhan Message-ID: <9807e34b-6553-7a10-516b-2c59ad5c667d@nxp.com> Date: Tue, 20 Sep 2016 14:28:17 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20160919144303.GL23158@yliu-dev.sh.intel.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131188355064910257; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(1110001)(1109001)(339900001)(3190300001)(24454002)(199003)(76104003)(189002)(377454003)(4326007)(65806001)(2906002)(4001350100001)(65956001)(23746002)(104016004)(47776003)(83506001)(86362001)(33646002)(305945005)(11100500001)(586003)(87936001)(81156014)(8676002)(8936002)(92566002)(68736007)(8666005)(230700001)(7846002)(356003)(93886004)(81166006)(85426001)(189998001)(97736004)(106466001)(36756003)(5660300001)(65826007)(5001770100001)(31696002)(19580395003)(626004)(54356999)(76176999)(2950100001)(50986999)(7126002)(50466002)(7246003)(64126003)(31686004)(105606002)(77096005)(120886001)(7059030)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB2436; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD017; 1:mCOwZNQXdtxOKYtn0HOq3JGSh9NpdSvuvYljwdVYcfZZMRo/rivCH8RcyXqRhgvIK8IUCaMgGJ/VwfmCiLVCK8ArwDwm55lFbuUN9TphpyeyfS9UB5v0/Kl/j4WpuFNezxpYK88cBuw2L0Q2m0KuelexdVslJTJZYfd2Zj8NEoFq43DUUvG6/UpyowIBEks3tPLRryjOzJ522U2MnW3sbOl603NFgw7yJCMP5uKrkiVZ306OHshOz4cKbzxeOxA4odvlQN1cYYIAzBfMX9+UVHVSLzdb/m0AV2hFGp9rfg8QiFaA0CrWqNGWPIgb+rRXbAtI6ispDfH5BPlUdwmuuKjBNvIImZUy6mEejy44vAcXk/zr/uQcy46OisgwwPa/PVDITPpSUpVJwVvlJgPk7vS/OVHN4kgt2/i+Dq+g0Oeb6DYSzPPtyh49JAmWTR2YXTlgfVXzLBxYhbnpn9pYdMG8dHuuI5rLfWEbdGA2SeKz7aKGyLL7oNU5h/iubj5OQBrxpfjK48JckX//e+Nl3qh3WDn2UeiG5jwSaC01w3ae/C8Ig4P6Nj5JPVZlpxHa/xSjczBXb69nbU9UGC36tlwuIKwcWNifhFt53jsddaUPHtB6gtx/JFpzplGgYrN/D2YrV+ikWlphFLeyhOlEYA== X-MS-Office365-Filtering-Correlation-Id: fe59042c-8a61-44bb-7051-08d3e13448c4 X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2436; 2:Um2z67sMwKc4eDI3eO0K0K8qCxupYMi/H4aQN7GO9nHpkXQ78uhaY1QJ+uvV1/DyDojQ/haauZ+0mGnBMsAsNpsp8MBYLCyFHfC+7s4FfR4unU8ERPNqLGWV36RBUT9nb0nwbzbRtAFe/FW478d5Iv2oYFNIG8dX23bYViKWncS+U9Pqtp5AYVhuvWFpm9jZ; 3:obvSZUmkgTwCb89hDMu2FhngJCwTsuh3v9w2aMDIfkPBnhaYFXsOxXqlahSzVV/cbtwbagHQF0CvSy2IFpfaCEkgAXfOOLLkyINlOqDk0X7yIvZRG+iJNNuHa1UAF5Pn1fF1mqwTsJfNaRcLHZ94BlOE3rWhdOfZpe/UlnJLpts/qi4ZX0ZNqOA4CBX4XNcAMAT9ZEKBR/S93Wdr02F6uGHWgpiScfKWZYiPOJoNGEI=; 25:c5IiWnYIOFovNRb1v2ql7KXW7Uuwrzhbt+IOTLSngX/rjA/PbdPCAjumwlmP2NZFBiQTOS3SkeoCSukbx7OzFSQsu6fjXi6FcTJVBeo7Z6uGjfyKd3sBC5h+jsypar86O9pv/56t39k98cQhk024yxMj+Ip0fooArdsv5wotrQFoi0+rXIHHLaUYuzmEu+MeXuKGhWP238T5QOsHteYYSnWPpvyAf7LiWK6EjbtoNkoLcBocslicM71xFeEOcS88nqR1MuD/88HhmiA02YktbjOW7PXSJ3tMhW3gRYxtT6ozNOPw6FIVIzh1I9gA21pNWEoVGiqe45b7ofwq2YuByf/931R2L2QWQSzs/PXpB60MqeM/3paBhhfxJ7xYP9wKqSh0qnYuoSea+4vO1CPofi4ZiFKfXVh9C3fu6E4IQEQ= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN6PR03MB2436; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2436; 31:3v9tQkYSKdkMyJdbO0tkuAdgy3IKCita6Uz9pxrqGbrhdoo59tyEmkSNz7SeF5xw4PvoBQxjO+lta+2EqMwBak4vDSl9BNVeFrOYJVVfN4OTG1H9Zhegw38oWnbn40uoWnhhciX1m2WN+iuGTKlh7SKDmiI1pVXuZkrGeq6D0NWzyArVf1j+cm1hrOIgPZJSWv5XYhjeogLrZwIek/plItjHMqJsHcLuhL7wJYHK1XM=; 4:PfxGbhD9RaFc5xR7pp2tEVgi8jq8StEgIAIzAC7GbwK2gQM1v7lecNVw9Q3VvIbeI2SAqndUy8CmdUt/zhzc0s6+ml7t1DnKbcNgPVVreYgAftLX4BlJR+s8tpIQSm17l6LDjJEGqRGIcB0aJQRTP5IFOdpTAljJbHxdR9KNzhQGiqmrfAp/Un85V5pXmQFRwBw8HhNszCf/3u+M2G9O+f5q6HQtM60CRf/8PbruD6OZFEQie1UcCD8kYxD6Yl2zqy1ZqSvpLZLB+bTeyUkRRDj9q5xsylYSJf+8kgSQ27tfCt0EI5m4DnUJPZmk099vFUezCJtb876cPUmTU/FzYigzECVqnFeaYz39H49iFDq41jn3LUfLubHfLBUlnMm1aShIviqb+Dy++siwJYU/8BKHJuDnaS/C0A5aEpTel+lZUjEDhYW4wfVVep/0arYNIiXD20HvFTWkDDmTt2XZHoKLzMVZ38leraQhF2YEPzLEIjkGa7o2WMKADLgfAswoSL0kh2Wx4j95Uyd++L2frwXOVtstH0MLu88j8b130wQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13017025)(13024025)(13015025)(13023025)(13018025)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:BN6PR03MB2436; BCL:0; PCL:0; RULEID:(400006); SRVR:BN6PR03MB2436; X-Forefront-PRVS: 0071BFA85B X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; BN6PR03MB2436; 23:E4UeMWteP5XHcP8uhkVNZ+/0qceliBPMnpSeo?= =?Windows-1252?Q?walDXsF2cbeVdn5NRz66tfbuButf37HFSmBDUh0jm30xGFRWjpGIodVx?= =?Windows-1252?Q?n2D39n17KJrjv/vlhzTBV6tXePDTFC3PZOVtKzFW7jdWPcsMSveDxiQ2?= =?Windows-1252?Q?DYluO0LhGZG4BPqK+6ipfkxc2G2+14I4s6dFRmX9DYXvgfG7ERo4a1Bp?= =?Windows-1252?Q?4ysVPIdoL2860pLhHjCxgywTdzGxxDTISOUp0IND8dOIUlbg2KlHrk2/?= =?Windows-1252?Q?q2bFsVdFLjckwJil4UpK4O2WTy9TA70y2Pm1YEQZG8M0reyaNkdAfEH8?= =?Windows-1252?Q?tBm0Nkq1hlzcD9obpipOQ0fqKijcHtsYXT0bAPPGNFIU6LnNlzd9Emr6?= =?Windows-1252?Q?OgxJOlzJ7V0NDq9mbJFOH3Z8tVCsr2cbhjA1xDkXoZGRkdj12rOVjBwe?= =?Windows-1252?Q?/NPrSDUuZtACd9x9lQeXRymsROA8Eof1xv/LQCx1duIFWdvKkyKSqBmh?= =?Windows-1252?Q?h8Kosa4PBtJYdFbw2expewtR1xjwbccetI0eYiHCoCc6BoTEWojOUxIJ?= =?Windows-1252?Q?wz0MoPBV7a1VsUFyn/35GnLxFLrivFm9lhDtn09xhs8iDbfl5VpWSr8E?= =?Windows-1252?Q?YbGk/p1Z5GYj6vIHBJXtBrQ39DONGhAPh3GOurTDvXlYXui6yuYBGdH+?= =?Windows-1252?Q?OUpIoEkxhN85Vl0CMx66EFcCAV8shR1BMItdxKwo8opI6B3z1XUtJHgc?= =?Windows-1252?Q?lcEJp6AT0fdOYkqP8Ff2NPVtYEqkylWpIIrtJEl2gv2njcDXyVTH6cRB?= =?Windows-1252?Q?bJ95FLrGe1CHxoou9mPUP1VzaJbiBjrDLyWNqNqCJIvgL5PTLrzesxk3?= =?Windows-1252?Q?M+O3/u2QOj4tbOLTCDJFC0f6mYLA+LqvcEEvAqkG86YjiNUkU2T7v3A0?= =?Windows-1252?Q?tdy/MvrectKF/tVat5xVWPP5PiYHM+SoUE28K9TxM59WIuBQl/VohKtD?= =?Windows-1252?Q?i+HrBS7Kb2HAb1TOP/7FZl94L3oz+fCl72Q1tYsUf7GdA1HNjV3DcgAU?= =?Windows-1252?Q?znPVJz9GtDz+4/OhArKweADAHRsq2nrVYAwZqQXbZH6IatFGCscw2DvE?= =?Windows-1252?Q?B3fgaieqHI5Bt6rYGoJrlP7Lh/cK0qkLAwBUavKJGeuXM/NE/GuYyDHn?= =?Windows-1252?Q?xHtmuWBzOR6W3AHPSUaJZdHvhJmD9x8KybnVneORrVq7p3zqhtuTzYcO?= =?Windows-1252?Q?CjhVfRx7lHfk9Otbx+xzROsqcw1tfaoTvceNl2Uh0ci0SeT+LHtLeJki?= =?Windows-1252?Q?fShA8F1lvzrGZSHiV2+evaWYN3rLgn+DIpyVuIHoTgH+B9eulr4g2J6j?= =?Windows-1252?Q?nhl406nUf/D3UDXZ1TR3I599bAz0Cl4wVKW9XsaqAmmXwWlyZZRg2mmp?= =?Windows-1252?Q?UWTbQy6KYNPW9RN5va9T+DPdVH4bRVzK/iCPUaWlzu6dB4H84wCuXmm0?= =?Windows-1252?Q?hVYCjzTkFre5WIpfAbrau9XBs6q6oVoMCt3Ht4MtN7f/4vL79Ibb2cEA?= =?Windows-1252?Q?MIaxSOwKwVWJyALt8IQ3YsWfs6Ti1KTT7bbgeb1zkPFxYcialtA6a5lZ?= =?Windows-1252?B?QT09?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2436; 6:uF/rBecug7mhjC+JMQ6DToISnmFR5wC3csnzy0vSLZTlwP9+siDuo/B0zBHhgqVeq0s46uMNvoQhMMg4MYDu+K/oQouN/vmZifySI6RKJoh6JWPf+93zDaWn/TMfQwN9ZGDHGxfv+EvH/HHgwXQI6b/7DVOK8qudob0u3WNq+Zsg36txOWewnfdnGOVCNr4YCSHueCl0fSjZoQIUNO47NPJE3mKKfVGCoEP9cJyCs4L0r3cQRuSxRG28/8ytgl9gW32mFjzztFnmz+yHxeWiTIB1wfNQi13P6fxI0ygcxz0=; 5:sBTu3WrGjHw/TITDM1lFUDa2obTc6DXUmH0iTtUPHnvt7YiqACE7b2gtLw8eqr7okTWuzgmCY+u2Ej27rZIpZrBj+zQzsNV9EXpmNk6MwPwI2iruVN9EPy5Ui7/c/FiyVFLO4LQ0soZbKyGZwwknbEu+TZ5cI+O+e9iksxTXrhs=; 24:o/PikFju3aT7vNQ0vDfic3tONyZuXsVDt+Ex8Z29LFA2GawbCte0XMH9ENfwwTcrAOrSD/GATPKQd++iOzj3bB6IKYgiEDTwf4bmJmkv7/w=; 7:bDDTeTITN69ltAfOg+e7grBztvUHLcStbeQYzS/k/gOu1H3NMVmtvDfsKZC1x9JoyyeNPobVXvPFNhmQ2pNQWfLDtRrSDGk2ElgLDVHEYS8l78CrzJTyzN3itoDfQCTIdRBoRN5OFtX4Khh9s2fHoUvr3WnxHVYwt5OvaN5tixnK3KpyNS2s5WiEVUc5eDTUyvaMFrAVG76Bf+DJdsbhmnMbm7Td3bK82/EpUhxEbMkGVpFXcrK90bSg0Su5WQgMAJSZdUJsyT1+/qJVLxJFB+/E/o/buETxT9Nb2mvzHGk3ENZFbLFW1Rtv557lpoFP SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2016 08:58:26.2726 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR03MB2436 Subject: Re: [dpdk-dev] [RFC][PATCH V2 1/3] examples/vhost: Add vswitch (generic switch) framework 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: Tue, 20 Sep 2016 08:58:30 -0000 On 9/19/2016 8:13 PM, Yuanhan Liu wrote: > Firstly, sorry for being late on this discussion: I just got a chance > to follow what you guys were talking about. > > On Tue, Sep 13, 2016 at 02:51:31PM +0800, Tan, Jianfeng wrote: >>> (2) we'd better not differentiate phys device and virtual > > Agreed. > >>>> device in generic framework (it's just an attribute of vswitch_port. >>>> >>>> What do you think? >>> >>> I agree with your thought that given the current API in this patchset we >>> should aim for making switch_worker agnostic of the port type. Ideally it >>> should look something like this: >>> >>> switch_worker() { >>> >>> rx_port mask = VSWITCH_PTYPE_PHYS | VSWITCH_PTYPE_PHYS; >>> >>> rx_port = vs_sched_rx_port(vswit_dev_g, rx_port_mask, core_id) >>> rx_q = rx_port->get_rxq(vs_port, vdev, code_id); >>> rx_port->do_rx(rx_port, rxq, NULL, pktss, MAX_PKT_BURST); >> >> Can we hide queues inside struct vswitch_port? I mean: >> For VMDQ switch, treat (port_id, queue_id) as a vswitch_port, so far you've >> already stored "struct vhost_dev *" into vswitch_port.priv when it's a >> virtual port, how about store queue_id into vswitch_port.priv when it's a >> physical port. > > Well, note that vhost-user also supports multiple queue; it's just > haven't been enabled yet. So, storing "vdev" for virtio port and > "queue_id" for phys port doesn't make too much sense. > >> For arp_learning switch, make (port_id, all_enabled_queues) as a >> vswitch_port. >> Summarize above two: we treat (port_id, all_enabled_queues[]) as a >> vswitch_port. >> >> How about it? > > Sorry, I don't quite like the idea. It's weird to use "vswitch_port + queue_id" > combination to represent a port. A vswitch_port should be just a port: let's > keep the logic that simple. > We wanted to take that approach to make vhost/main.c agnostic port type and have common code for rx/tx processing. The current version of patchset (v2) takes care of multiqueue, as it calls vs_port->get_txq/get_rxq to get the queue on which rx/tx has to be performed. This way the underlying switch can decide the queue based on core_id and vs_port. But in the v2 patchset we still bind vhost_dev to the cores, and pass it to vs_port->get_rxq() to get the rx_queue corresponding to vhost_dev. Jianfeng had suggested to remove vhost_dev to core binding, and bind vs_port to the cores. Creating one vswitch_port for a physical port + queue_id was a step in that direction, thus creating very generic code in vhost/main.c. YLiu/Jianfeng, Please suggest what approach we should take here? Should we keep the logic of binding vhost_dev to core (as in V2 patchset), thus leaving some intelligence about vhost_dev in vhost/main.c. Or What other options do you suggest if we want to achieve port type agnostic vhost/main.c Thanks, Pankaj