Thread (8 messages) flat view 8 messages, 2 authors, 2017-05-10

Re: Requirements for a shutdown function?

From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2017-05-09 19:06:52

On 05/09/2017 11:51 AM, Timur Tabi wrote:
On 05/09/2017 01:46 PM, Florian Fainelli wrote:
quoted
A good test case for exercising a .shutdown() function is kexec'ing a
new kernel for instance.
I tried that.  I run iperf in one window while launching kexec in another.
Even without a shutdown function, network traffic appear to halt on its own
and the kexec succeeds.

Is it possible that the network stack detects a kexec and automatically
stops all network devices?
No. why would it? However the device driver model does call into your
driver's remove function and that one does a right job already because
it does an network device unregister, and so on.

There is no strict requirement for implementing a .shutdown() function
AFAICT and it does not necessarily make sense to have one depending on
the bus type. For platform/MMIO devices, it hardly has any value, but on
e.g: PCI, it could be added as an additional step to perform a full
device shutdown.
quoted
You should put your HW in a state where it won't be doing DMA, or have
any adverse side effects to the system, putting it in a low power state
is also a good approach.
My in-house driver stops the RX and TX queues.  I'm guessing that's good
enough, but I don't have a failing test case to prove it.
That's probably good enough, yes.
-- 
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help