[{"id":1797874,"web_url":"http://patchwork.ozlabs.org/comment/1797874/","msgid":"<20171102122327.GE4772@lunn.ch>","list_archive_url":null,"date":"2017-11-02T12:23:27","subject":"Re: [PATCH 3/7] MIPS: Octeon: Add a global resource manager.","submitter":{"id":13608,"url":"http://patchwork.ozlabs.org/api/people/13608/","name":"Andrew Lunn","email":"andrew@lunn.ch"},"content":"> +static void res_mgr_lock(void)\n> +{\n> +\tunsigned int tmp;\n> +\tu64 lock = (u64)&res_mgr_info->rlock;\n> +\n> +\t__asm__ __volatile__(\n> +\t\t\".set noreorder\\n\"\n> +\t\t\"1: ll   %[tmp], 0(%[addr])\\n\"\n> +\t\t\"   bnez %[tmp], 1b\\n\"\n> +\t\t\"   li   %[tmp], 1\\n\"\n> +\t\t\"   sc   %[tmp], 0(%[addr])\\n\"\n> +\t\t\"   beqz %[tmp], 1b\\n\"\n> +\t\t\"   nop\\n\"\n> +\t\t\".set reorder\\n\" :\n> +\t\t[tmp] \"=&r\"(tmp) :\n> +\t\t[addr] \"r\"(lock) :\n> +\t\t\"memory\");\n> +}\n> +\n> +static void res_mgr_unlock(void)\n> +{\n> +\tu64 lock = (u64)&res_mgr_info->rlock;\n> +\n> +\t/* Wait until all resource operations finish before unlocking. */\n> +\tmb();\n> +\t__asm__ __volatile__(\n> +\t\t\"sw $0, 0(%[addr])\\n\" : :\n> +\t\t[addr] \"r\"(lock) :\n> +\t\t\"memory\");\n> +\n> +\t/* Force a write buffer flush. */\n> +\tmb();\n> +}\n\nIt would be good to add some justification for using your own locks,\nrather than standard linux locks.\n\nIs there anything specific to your hardware in this resource manager?\nI'm just wondering if this should be generic, put somewhere in lib. Or\nmaybe there is already something generic, and you should be using it,\nnot re-inventing the wheel again.\n\n      Andrew","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3ySPQJ4643z9s7M\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu,  2 Nov 2017 23:23:52 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1754291AbdKBMXk (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 2 Nov 2017 08:23:40 -0400","from vps0.lunn.ch ([185.16.172.187]:38905 \"EHLO vps0.lunn.ch\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1751324AbdKBMXi (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tThu, 2 Nov 2017 08:23:38 -0400","from andrew by vps0.lunn.ch with local (Exim 4.84_2)\n\t(envelope-from <andrew@lunn.ch>)\n\tid 1eAEWt-0006eZ-QD; Thu, 02 Nov 2017 13:23:27 +0100"],"Date":"Thu, 2 Nov 2017 13:23:27 +0100","From":"Andrew Lunn <andrew@lunn.ch>","To":"David Daney <david.daney@cavium.com>","Cc":"linux-mips@linux-mips.org, ralf@linux-mips.org,\n\tJames Hogan <james.hogan@mips.com>, netdev@vger.kernel.org,\n\t\"David S. Miller\" <davem@davemloft.net>,\n\tRob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>,\n\tlinux-kernel@vger.kernel.org, \"Steven J. Hill\" <steven.hill@cavium.com>,\n\tdevicetree@vger.kernel.org, Carlos Munoz <cmunoz@cavium.com>","Subject":"Re: [PATCH 3/7] MIPS: Octeon: Add a global resource manager.","Message-ID":"<20171102122327.GE4772@lunn.ch>","References":"<20171102003606.19913-1-david.daney@cavium.com>\n\t<20171102003606.19913-4-david.daney@cavium.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20171102003606.19913-4-david.daney@cavium.com>","User-Agent":"Mutt/1.5.23 (2014-03-12)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1798040,"web_url":"http://patchwork.ozlabs.org/comment/1798040/","msgid":"<caeae680-915a-d08c-d220-899db0970328@caviumnetworks.com>","list_archive_url":null,"date":"2017-11-02T16:03:42","subject":"Re: [PATCH 3/7] MIPS: Octeon: Add a global resource manager.","submitter":{"id":721,"url":"http://patchwork.ozlabs.org/api/people/721/","name":"David Daney","email":"ddaney@caviumnetworks.com"},"content":"On 11/02/2017 05:23 AM, Andrew Lunn wrote:\n>> +static void res_mgr_lock(void)\n>> +{\n>> +\tunsigned int tmp;\n>> +\tu64 lock = (u64)&res_mgr_info->rlock;\n>> +\n>> +\t__asm__ __volatile__(\n>> +\t\t\".set noreorder\\n\"\n>> +\t\t\"1: ll   %[tmp], 0(%[addr])\\n\"\n>> +\t\t\"   bnez %[tmp], 1b\\n\"\n>> +\t\t\"   li   %[tmp], 1\\n\"\n>> +\t\t\"   sc   %[tmp], 0(%[addr])\\n\"\n>> +\t\t\"   beqz %[tmp], 1b\\n\"\n>> +\t\t\"   nop\\n\"\n>> +\t\t\".set reorder\\n\" :\n>> +\t\t[tmp] \"=&r\"(tmp) :\n>> +\t\t[addr] \"r\"(lock) :\n>> +\t\t\"memory\");\n>> +}\n>> +\n>> +static void res_mgr_unlock(void)\n>> +{\n>> +\tu64 lock = (u64)&res_mgr_info->rlock;\n>> +\n>> +\t/* Wait until all resource operations finish before unlocking. */\n>> +\tmb();\n>> +\t__asm__ __volatile__(\n>> +\t\t\"sw $0, 0(%[addr])\\n\" : :\n>> +\t\t[addr] \"r\"(lock) :\n>> +\t\t\"memory\");\n>> +\n>> +\t/* Force a write buffer flush. */\n>> +\tmb();\n>> +}\n> \n> It would be good to add some justification for using your own locks,\n> rather than standard linux locks.\n\nYes, I will add that.\n\n\n> \n> Is there anything specific to your hardware in this resource manager?\n> I'm just wondering if this should be generic, put somewhere in lib. Or\n> maybe there is already something generic, and you should be using it,\n> not re-inventing the wheel again.\n\nThe systems built around this hardware may have other software running \non CPUs that are not running the Linux kernel.  The data structures used \nto arbitrate usage of shared system hardware resources use exactly these \nlocking primitives, so they cannot be changed to use the Linux locking \nimplementation de jour.","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com\n\theader.i=@CAVIUMNETWORKS.onmicrosoft.com header.b=\"nl8EZZvo\"; \n\tdkim-atps=neutral","spf=none (sender IP is )\n\tsmtp.mailfrom=David.Daney@cavium.com; "],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3ySVJK6XVfz9t2r\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  3 Nov 2017 03:04:01 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S933958AbdKBQDv (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 2 Nov 2017 12:03:51 -0400","from mail-by2nam03on0075.outbound.protection.outlook.com\n\t([104.47.42.75]:52843\n\t\"EHLO NAM03-BY2-obe.outbound.protection.outlook.com\"\n\trhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP\n\tid S933921AbdKBQDq (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tThu, 2 Nov 2017 12:03:46 -0400","from ddl.caveonetworks.com (50.233.148.156) by\n\tDM5PR07MB3498.namprd07.prod.outlook.com (10.164.153.29) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.20.178.6; Thu, 2 Nov 2017 16:03:44 +0000"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=3JFEQNqXrf9ZSX3K5ROzV0FT/TDbpWabBNT/uH/EX2s=;\n\tb=nl8EZZvoe6wSrIrSMPsTXEGTI4pg1SvVUU4E8isURe3casl1euhKWimJ5c4GjTk1F5OZe3IzqPQG6u/DspZvdgVDeGUHO+gj/euY1tHKhTXD7JGoApx39EBrKDqRLLIIkqXLu6K68gYqHDL/Q9DtaspFQveYmq1hKsBLwPn/q+8=","Subject":"Re: [PATCH 3/7] MIPS: Octeon: Add a global resource manager.","To":"Andrew Lunn <andrew@lunn.ch>, David Daney <david.daney@cavium.com>","Cc":"linux-mips@linux-mips.org, ralf@linux-mips.org,\n\tJames Hogan <james.hogan@mips.com>, netdev@vger.kernel.org,\n\t\"David S. Miller\" <davem@davemloft.net>,\n\tRob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>,\n\tlinux-kernel@vger.kernel.org, \"Steven J. Hill\" <steven.hill@cavium.com>,\n\tdevicetree@vger.kernel.org, Carlos Munoz <cmunoz@cavium.com>","References":"<20171102003606.19913-1-david.daney@cavium.com>\n\t<20171102003606.19913-4-david.daney@cavium.com>\n\t<20171102122327.GE4772@lunn.ch>","From":"David Daney <ddaney@caviumnetworks.com>","Message-ID":"<caeae680-915a-d08c-d220-899db0970328@caviumnetworks.com>","Date":"Thu, 2 Nov 2017 09:03:42 -0700","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.4.0","MIME-Version":"1.0","In-Reply-To":"<20171102122327.GE4772@lunn.ch>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-Originating-IP":"[50.233.148.156]","X-ClientProxiedBy":"DM5PR07CA0043.namprd07.prod.outlook.com (10.168.109.29) To\n\tDM5PR07MB3498.namprd07.prod.outlook.com (10.164.153.29)","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"13537de9-0e37-4ee4-89fa-08d5220b4ba5","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603238);\n\tSRVR:DM5PR07MB3498; ","X-Microsoft-Exchange-Diagnostics":["1; DM5PR07MB3498;\n\t3:F23d+XpKO37/PQGGaVTn9XByh3K/5oHr4aQS0iQCXMhhXyaCh5E+ggao2oTmZC2KkP8dEAOcQJYeKCO9+H8Or8izU5Wo7JMorw00TWXtZuQdqMUXNXL/WJKahrRcgyO5OWEMCLJfTNta3MT/04Vdrcm1iImqY3aY9H72kzxMB2IaVT4+T8KYbGrzRpNNYAk8Cvde3jmtS4GTwNGex/W+6o3yKR3Wsnb+elA1s3SmycJ+s11uYlDam3JVTYxq1aBj;\n\t25:QKGmt2GO4OvwYSX74iUocfOpANIDEU2380GZbx4deb7Be9Nd1esqObiVFLlkOIobRwrAUdsMWOGHK9qOkCCSYo1xQVjnXHsFDr+84LFTJN+rdy8irQRjvQ0Hll9lR6wcf3yj6Hre3CzApE3vXeX6nXDKGr/pDFl2VqMrqlOStqA55/wYz0T4jG+oC16oqmPGF2dK9liz12fqrFuKG4pRVP3aeDJNuaHb1frNr4YJdFeDsQum6Q7s1Bw+A7XlE/hl4oW53pRb4BvB3RfMpF6KhVFlotFR5VkJAeyfxJ4QRZ6hovUwu+Ocf6YZ4/glYIJQ3iG9I0yAcizUyLWiu7e3Ig==;\n\t31:yP5n6HfxT6e0YBBSLvWzlJlSF8iBE3lOBjxCNRrQQOzuXSbMViXHyDLvZXVAqeTHTOO1tHMHLHRLvdGe4ateVku7i0rl3myMcRK1YPU5C/tuDh0e8Mxj9R2iteV1YaFxdMOfV+ntIL9Gr0jrAeGfymnbQQqj2xAILsCRkKU4XyuY5N6DVSyhBROZdxzcvag6TuDmjsqlcXk4208ZgEw56UHNGjLwar5u/oFUX3cmFhg=","1; DM5PR07MB3498;\n\t20:Kz6wrmIgkkf9tKxL4LQTPBdZn+qf1ELvIL/P1fTfwr45BgxF0bnnE92X685m8Q4IkQzFgbV8e3vT8efLTHIopsx4eQFnASP8GjhIxt3hvH+tcSj705cuL6MM1FENQIl8KwPC50R0e/f15garMoaTn8lIhLcwTuSdQ7afkXNaZ8fA46r3TWh5lk8+CXxfO7HQQRaINEXgkUVwHwg9UX1dECTYs5HTNXOXxFvUgkMzBb+sRgO8mmHP1HOlYU/5j+HsCyKTaa2foaJqvMV5wNMmQizcGAV0D9gbwDLB3+YDlZj3zqjMcXkIrfHMMYxXOa3zHPB7DFW1KX50VAioatd3HkIaHqw1HaVrQ6zDuesEvv9butAOONcYFo0eV1ZvhHvC2JZjVpCptTar7zwmUVluSczUbU3eVq4Jj/GyEgz14p5k15KuAMovHjdDxTOCD6G2fIeFRNrxBbp/wCNkZlJ4r+cyh2IbI1EN7AVnQgJtGfs+DxopO/LPOMmVvxchQMc/BFatjCO/+um1DzgrMx+fISXjIIOxsRNUQLCnq3tf5FfLFXH7H6jl2fKsS6PVB7WZkIw9mg/q5O1SZlpaZaVTABfoc9/MELYLdd7zHAscnIQ=;\n\t4:vmalK0Jh2avaAwSLNzrP2gD7lZDMvLSlILDmfY4uj2kmXgzK/1llT7HRXYovhw7JdB+DSFxlieBj3XYRjDMyDmIxPNOo1HTtyBbDTsXN7CU5efaypE7gIMqtijAiktt4KPDLz0ztV/Qqnf3L1lTNukyqQ5cuYadC51xblc18VH+EqapM8reap0lEkoH1WSEycjArNOSJObaEPZURQBuy6YRJxSOa9ePjZsXRMpyMXQFlgtQN4X4s9kobSCO1ruynYm8Zyv09wIhISFc4OcUtMg==","=?utf-8?q?1=3BDM5PR07MB3498=3B23=3AsdwT?=\n\t=?utf-8?q?7XpYpcpJyOlfXGBGAmAt5b32dnNXXjRVsaIpzFRhOQHidJSYUsRRBkWB?=\n\t=?utf-8?q?WFDhLtCpZIh2Nk+5UBw2xfvl/Sx4SF1Imm2ibrBh4qjUZ1Hc/2QJkJjU?=\n\t=?utf-8?q?toCariIPUZwwbRfYUvczPHqrtdTE/MsvVMGE7x782Un3rGoE08mnAuUL?=\n\t=?utf-8?q?RNq4jCu0qri2pQKjj1rVhUYY+m4jMlIujLcaUqhZGfgY6rOE8tI1Mgbz?=\n\t=?utf-8?q?iEu1n94ECHxuW1g++nf9t4nJAvg2rM7HUrYz2gpttpMB0jxklcmDh88q?=\n\t=?utf-8?q?WLcyn8mZIgQcmXd78YLe+wpEuozDSfmlHWSsaQBQ9JAX9/oOqoef3nSy?=\n\t=?utf-8?q?vO5fOPc7AFY6p/jF0b/6/AsOj3gfoa8Xi5z9d3zyZGuykKXUgfEz4GVB?=\n\t=?utf-8?q?IoTidqdeGm8nfvE/xuxoeSxHR5N/XG4oDBuoLbOomG5Y/Y9/o8Bdj4Co?=\n\t=?utf-8?q?fvvwcA5yExWtiscPEevQHzJPSKxmymShFEKkkljIRO6Fe+LItq9dtJyR?=\n\t=?utf-8?q?FchN1qaPdFKqUlv5g2M8+z1+cqqqeuVKR1OosvMyewez3F8dOmbafeUC?=\n\t=?utf-8?q?7U2pVaxDAcWNNxZjto1kn9b2Kjy1kHju3I1uomMnoDsadyIZuSnH34br?=\n\t=?utf-8?q?u7Z27MBdZCerHSXqx35g9+hFDAh87oKYJrsNzhAunnJpdBuAeFShCLyG?=\n\t=?utf-8?q?ItHGa7ACaXx9qAFfjDjMSMBsGgmn0raMgpv32fj5zPrZRqr+BeAwbemi?=\n\t=?utf-8?q?odh54FoSNJ6nKJYEcLSokaHYFs47seyBWfXFnD09cVmZOHO4BBcfaSuy?=\n\t=?utf-8?q?Vr9gJ6JWR39L4zHb/H0JyEp8GjbEpw3ejgmlxQPcVEphinRp7ZXF1vul?=\n\t=?utf-8?q?CEQeooTpnEqAFa/V2l7dfPPa9GYvgOZZ+rz1xPj1mFxdYnNQ33eSdjHO?=\n\t=?utf-8?q?YhYwJynQq5TIzLFeExxbU/MKWxPMeavoEueAGV6WvETf26czLYSygFfY?=\n\t=?utf-8?q?lNTTtY12kIx3h+eK4ntCz9fY0INsD05D0I5R9krarGwTLPu9Vo86Xe2B?=\n\t=?utf-8?q?I9FvJLb9+VdtpnfnMTaBA9pgQ4xj9PKhRrEoN23y5Lmqb11MbHs8myWj?=\n\t=?utf-8?q?AGPkA8T6ATMIM1c1XVaS62bydO4oM4xQGOt6azYkgepJNGf4PdFsdp5r?=\n\t=?utf-8?q?w7fZg9zM27ytWPdMJuFm32luOXCR3JcBA4O9SeiWzIxjeUJMKpCC/LQf?=\n\t=?utf-8?q?jPxamlc4CpxQUhm0L0p65URWqX3HoDG2yP/gGP6sYntC7qUxn/LpAxzM?=\n\t=?utf-8?q?qAvWa8JErWbmjP9z2KfXPCILyDmCnjpyD6Q0JxFi8Lg1Oq8I11msLhGx?=\n\t=?utf-8?q?u5PG/Hkxi1VyBNCOzDHE0Rnr1K+mSPIWrCoGr3VnXetbK/eRZ1EOFAed?=\n\t=?utf-8?q?L4QX5vOaJPCR38OIIBCFSnsJ4YgNkw1lvDAEXPWz4deEhkYs+OAKm6VR?=\n\t=?utf-8?q?Bk1iYUMC/nQdpOETZMty0x51IA=3D=3D?=","1; DM5PR07MB3498;\n\t6:miJ7T1d5jQYtk1pAxmoLFykcitmh2wu67I9HIIUYL/MloOR51U5xVymthNrmggC1wG2t+S0iqKyrwsE0u/p9J4Nwon+SP5/Plc+7BjMKXp54s8dpZwJQbU+KeXaxLdm4hGIEouL4lknyVmffP8/fXFI0Jza+jztTvXGXQ8AGt/7ocEu8snVwU/8JwO8YyRVXC0codylJecW91wWjrHhFDV1yRl7UH+CmsqHRBKmU1iTMO3RCXFNldt/sY7xjaIcMv4wFkn8q/Ra6Zo8f22MU7ck5pNmMqYzoKxBrVRDQiG8Rk0X8bJWIz0m+IYbAwA0s/f6D6I84vJb0/Zu/mg+5d6/+Hp7hDpixVHhJ1/40Efk=;\n\t5:HG1ea/N+i5CSgmnDBoiT6BhplI/yYBZmFFgRRn9WktJNjyCc21PKNIf7QDpitN1gm6r0yYaVVQg0TyQFfotfwr458bky5BSmnsGr1u8GL6LdHe6a7QrAjhc8efdWqCNeQJOqdgKwZvZeoIEefHH+NmkJ/UHCQtLuCPyweI+i7DM=;\n\t24:RVGMROrz66Wg7h0fCWS+jVLdlAZxrWyREnI3UUXWayXZ45BdTZa24qbYnHt/SO7PIuZSozWkDPG1ZTYxPe+F0xRcUdCBcK0PfMyFzLtw8M0=;\n\t7:egSUdrtEJj6Vhhp0P0aApda+h6fZnuqOxQPo3Fy26R7BGr44kDYcVNMFA7balqcjKk8PAlGZZJyZLbImqwxs7eUt+JlgBkcu3HZgt6zcklT8cIYKYNV4zviGH/97T+RbLZ8LX22/2myYYHDztiCODKirnhxMDuwstbBQOGgGr9wKOY2BDPSp/awJk8SJiQadqMNLb/zdqOYhdPsIYnJqqcsCxJKrOKR6+jLAw8CgNzHQoy1ZkOKzQZce+EY+OmJh"],"X-MS-TrafficTypeDiagnostic":"DM5PR07MB3498:","X-Exchange-Antispam-Report-Test":"UriScan:;","X-Microsoft-Antispam-PRVS":"<DM5PR07MB3498D3AE99B3DEEA9E07251F975C0@DM5PR07MB3498.namprd07.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3231020)(100000703101)(100105400095)(10201501046)(93006095)(3002001)(6041248)(20161123555025)(20161123562025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DM5PR07MB3498; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DM5PR07MB3498; ","X-Forefront-PRVS":"047999FF16","X-Forefront-Antispam-Report":"SFV:NSPM;\n\tSFS:(10009020)(6009001)(376002)(346002)(189002)(199003)(24454002)(83506002)(72206003)(229853002)(47776003)(107886003)(305945005)(6246003)(53546010)(7736002)(64126003)(16526018)(65806001)(81156014)(110136005)(478600001)(58126008)(66066001)(81166006)(54906003)(65956001)(8676002)(53936002)(316002)(69596002)(6506006)(6486002)(68736007)(2906002)(31696002)(33646002)(31686004)(7416002)(4326008)(42882006)(230700001)(97736004)(106356001)(8936002)(25786009)(5660300001)(50986999)(54356999)(65826007)(76176999)(2950100002)(53416004)(36756003)(105586002)(50466002)(3846002)(6512007)(6116002)(189998001)(23676003)(67846002)(101416001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3498;\n\tH:ddl.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords;\n\tMX:1; A:1; LANG:en; ","Received-SPF":"None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-OriginatorOrg":"caviumnetworks.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"02 Nov 2017 16:03:44.4573\n\t(UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"13537de9-0e37-4ee4-89fa-08d5220b4ba5","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"711e4ccf-2e9b-4bcf-a551-4094005b6194","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DM5PR07MB3498","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1798141,"web_url":"http://patchwork.ozlabs.org/comment/1798141/","msgid":"<6ff04462-88ec-a972-4084-e26ea3cb630a@gmail.com>","list_archive_url":null,"date":"2017-11-02T17:49:19","subject":"Re: [PATCH 3/7] MIPS: Octeon: Add a global resource manager.","submitter":{"id":2800,"url":"http://patchwork.ozlabs.org/api/people/2800/","name":"Florian Fainelli","email":"f.fainelli@gmail.com"},"content":"On 11/02/2017 09:03 AM, David Daney wrote:\n> On 11/02/2017 05:23 AM, Andrew Lunn wrote:\n>>> +static void res_mgr_lock(void)\n>>> +{\n>>> +    unsigned int tmp;\n>>> +    u64 lock = (u64)&res_mgr_info->rlock;\n>>> +\n>>> +    __asm__ __volatile__(\n>>> +        \".set noreorder\\n\"\n>>> +        \"1: ll   %[tmp], 0(%[addr])\\n\"\n>>> +        \"   bnez %[tmp], 1b\\n\"\n>>> +        \"   li   %[tmp], 1\\n\"\n>>> +        \"   sc   %[tmp], 0(%[addr])\\n\"\n>>> +        \"   beqz %[tmp], 1b\\n\"\n>>> +        \"   nop\\n\"\n>>> +        \".set reorder\\n\" :\n>>> +        [tmp] \"=&r\"(tmp) :\n>>> +        [addr] \"r\"(lock) :\n>>> +        \"memory\");\n>>> +}\n>>> +\n>>> +static void res_mgr_unlock(void)\n>>> +{\n>>> +    u64 lock = (u64)&res_mgr_info->rlock;\n>>> +\n>>> +    /* Wait until all resource operations finish before unlocking. */\n>>> +    mb();\n>>> +    __asm__ __volatile__(\n>>> +        \"sw $0, 0(%[addr])\\n\" : :\n>>> +        [addr] \"r\"(lock) :\n>>> +        \"memory\");\n>>> +\n>>> +    /* Force a write buffer flush. */\n>>> +    mb();\n>>> +}\n>>\n>> It would be good to add some justification for using your own locks,\n>> rather than standard linux locks.\n> \n> Yes, I will add that.\n> \n> \n>>\n>> Is there anything specific to your hardware in this resource manager?\n>> I'm just wondering if this should be generic, put somewhere in lib. Or\n>> maybe there is already something generic, and you should be using it,\n>> not re-inventing the wheel again.\n> \n> The systems built around this hardware may have other software running\n> on CPUs that are not running the Linux kernel.  The data structures used\n> to arbitrate usage of shared system hardware resources use exactly these\n> locking primitives, so they cannot be changed to use the Linux locking\n> implementation de jour.\n\nWould hwspinlock be a possible option so this is abstracted on the Linux\nside using these locking primitives through the hwspinlock layer which\nin turn does exactly what is above?","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"bOH2DVmR\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3ySXmv4nZdz9sMN\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  3 Nov 2017 04:55:27 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S932438AbdKBRtZ (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 2 Nov 2017 13:49:25 -0400","from mail-pg0-f65.google.com ([74.125.83.65]:43610 \"EHLO\n\tmail-pg0-f65.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1755528AbdKBRtX (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 2 Nov 2017 13:49:23 -0400","by mail-pg0-f65.google.com with SMTP id s75so262534pgs.0;\n\tThu, 02 Nov 2017 10:49:23 -0700 (PDT)","from [10.112.156.244] ([192.19.255.250])\n\tby smtp.googlemail.com with ESMTPSA id\n\tc26sm7114581pfl.115.2017.11.02.10.49.20\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tThu, 02 Nov 2017 10:49:21 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=subject:to:cc:references:from:message-id:date:user-agent\n\t:mime-version:in-reply-to:content-language:content-transfer-encoding; \n\tbh=32QbRC8XDIOBymUYOSgOw8crtbmy2rYVUsCyJF/0eZ0=;\n\tb=bOH2DVmRnEn7uHOIJaji979qBrtXA1eia2f/YfquM/HC+SS9R3Uuk2oG27LQa5halv\n\txu41dB0xN749nNI0qkVFMbfvQrfEvDCWYu7szg01dP8u2ncpuiRP5+YI/s4Np+ZNXEPh\n\tFrbwIgCZqJvuIk+bce+4cUVB7FnmyyCbXD27dgvOegGzVbfVAglqU1VBrqHfFkWFazWE\n\tVaE0uFpLtTgMp5suTkbolJgi1wZwYFQhzZGdUGV4blYfrPBqyysKbaOV8jJIz7DyC/QQ\n\trecetAN0exfc7SOEelm67PxiGZknpExQjG3CxBhSaUf6pDS9+7Qcu9DENtzogWZmSjKt\n\tRuvQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:subject:to:cc:references:from:message-id:date\n\t:user-agent:mime-version:in-reply-to:content-language\n\t:content-transfer-encoding;\n\tbh=32QbRC8XDIOBymUYOSgOw8crtbmy2rYVUsCyJF/0eZ0=;\n\tb=pHkPbYo1p0sX8plWGpkwSofLolPNK9Ezvc0x5302rhA1C7rV3RWIEJ+3VrX5puKTIV\n\tF5+z9MujAgOb/izKD+5qUr5z5CFsrpX9Cp4EhNzqDF3XvWqLGWszSsfMz+GEYA0Lwqsr\n\tRFim09PN1+K2Naf0NK5WbNnvpmRqlLG580PgkCJeYDhQymxV/fEzdRF/fA56g9sCq8/V\n\tWNn8JebL6d+sjjW+2e+rFr6t6k4eN9BrLrAJ4+BP0ZyjBlCkCXMeSXs7bMMY9uWE6oxA\n\t/KZ+KNdgViEc12ShXGbcLuHF9l01f4itWWAiY9QYKTa5PJU19gI8a9feBhxip4bnAmuD\n\tokdA==","X-Gm-Message-State":"AMCzsaXp5RyAyQnni5fUPEpzDsWyA5X9Mj/+Jk6hxXNDfKZLNRlLq71Y\n\tR1y3iniwA/L2eFGjhWf+pB8=","X-Google-Smtp-Source":"ABhQp+SSnpfUOYgsIWNln619NX850LL58niGBOaBR9lJBK3ki/jkp4O3mig9dAR2y8LDaOCu4g/t3A==","X-Received":"by 10.84.202.12 with SMTP id w12mr4042517pld.358.1509644962695; \n\tThu, 02 Nov 2017 10:49:22 -0700 (PDT)","Subject":"Re: [PATCH 3/7] MIPS: Octeon: Add a global resource manager.","To":"David Daney <ddaney@caviumnetworks.com>, Andrew Lunn <andrew@lunn.ch>,\n\tDavid Daney <david.daney@cavium.com>","Cc":"linux-mips@linux-mips.org, ralf@linux-mips.org,\n\tJames Hogan <james.hogan@mips.com>, netdev@vger.kernel.org,\n\t\"David S. Miller\" <davem@davemloft.net>,\n\tRob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>,\n\tlinux-kernel@vger.kernel.org, \"Steven J. Hill\" <steven.hill@cavium.com>,\n\tdevicetree@vger.kernel.org, Carlos Munoz <cmunoz@cavium.com>","References":"<20171102003606.19913-1-david.daney@cavium.com>\n\t<20171102003606.19913-4-david.daney@cavium.com>\n\t<20171102122327.GE4772@lunn.ch>\n\t<caeae680-915a-d08c-d220-899db0970328@caviumnetworks.com>","From":"Florian Fainelli <f.fainelli@gmail.com>","Message-ID":"<6ff04462-88ec-a972-4084-e26ea3cb630a@gmail.com>","Date":"Thu, 2 Nov 2017 10:49:19 -0700","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.2.1","MIME-Version":"1.0","In-Reply-To":"<caeae680-915a-d08c-d220-899db0970328@caviumnetworks.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]