lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <AANLkTim8SJ0CzC_tRLhSqXdSXHwcDtx5qFy5A4qo3sae@mail.gmail.com> Date: Sat, 8 May 2010 10:25:53 -0500 From: Andy Fleming <afleming@...il.com> To: "bryan.wu@...onical.com" <bryan.wu@...onical.com> Cc: "davem@...emloft.net" <davem@...emloft.net>, Sascha Hauer <s.hauer@...gutronix.de>, Greg Ungerer <gerg@...inux.org>, Amit Kucheria <amit.kucheria@...onical.com>, "netdev@...r.kernel.org" <netdev@...r.kernel.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org> Subject: Re: [PATCH 1/2] netdev/fec: fix performance impact from mdio poll operation On Saturday, May 8, 2010, Bryan Wu <bryan.wu@...onical.com> wrote: > On 05/08/2010 12:06 AM, Andy Fleming wrote: > From the BugLink, we experienced a lot of error > > The Phy lib is not going to respond well if an mdio > write times out without returning an error. And returning an error > means the whole state machine has to reset, as a failed write is not > something we currently handle gracefully. > > > > Right, if we return error to phylib due to mdio read times out, the performance will drop a lot. Yes, and if you *don't* return an error, you risk incorrect behavior. This patch changes the driver to return the read result, after detecting that the read result is invalid. I don't know what the value in that register will be, but it can't be correct. If the hardware is broken, then we need to find a workaround that doesn't break things for chips which have working mdio. It's also possible we just need a longer timeout. Does the mdio bus ever return correct values? > > > Is it possible to use an interrupt to get the phy state change? This > would allow the phy lib to stop its incessant polling. It doesn't > solve the question of why it's timing out, though. > > > > I'm going to try the interrupt, but fec driver is shared by several SoCs. It might be a little complicated and still cannot fix the timing out issue. Is there any example driver to use an interrupt to get the phy state change? Well, there are examples, but they may be only somewhat helpful. From the perspective of the PHY Lib, all you have to do is put a correct value into the irqs array in the mdio bus struct for your bus. The part where you will probably have to solve a problem is in figuring out how to convey that information to the bus driver. On Power CPUs and socs, we use a device tree, which has an interrupt associated with each PHY. Look at wherever your mdio bus *device* is registered. That's probably where you'll have that information. Feel free to look at drivers/net/fsl_pq_mdio.c Another possibility is to use the fixed link phy driver, which will never attempt to use the mdio bus, and won't poll. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists