linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* RE: [ANNOUNCE] Linux Hardened Device Drivers Project
@ 2002-09-24 19:30 Rhoads, Rob
  2002-09-24 19:55 ` Greg KH
  0 siblings, 1 reply; 21+ messages in thread
From: Rhoads, Rob @ 2002-09-24 19:30 UTC (permalink / raw)
  To: 'Greg KH', Rhoads, Rob
  Cc: linux-kernel, hardeneddrivers-discuss, cgl_discussion

> 
> On Mon, Sep 23, 2002 at 03:38:32PM -0700, Rhoads, Rob wrote:
> > I appreciate all the feedback. Based on the wide variety 
> > of ideas/comments, it looks like I need to go back and 
> > incorporate these ideas into the document, potentially 
> > changing areas in major ways where appropriate.    
> 
> Not to be a pest, but I, and a lot of other people, posted some very
> specific questions in response to both your original posting, and in
> response to the published specification and published code.  
> It would be
> considered proper etiquette if you would at least try to respond to
> _some_ of these questions, as you did ask for them, rather 
> than stating
> that you are going to go mull over everything and come back with a
> modified document.

I've been overwhelmed with the hailstorm of posts hitting 
my mailbox, since I made the project announcement.

> 
> If you don't, any expectations of people reviewing future specs, or
> proposals from this project should be kept quite low.
> 

The responses I have received have fallen into several buckets:

1. INTEL???? wtf?  You're evil.  Go away.
2. Good goal; bad approach.
3. Good goal, bad approach in places, here are areas for improvement.
4. Good goal, here are my thoughts and questions on X.

Keep in mind the original post was the announcement of a new project.
Sure, there was a big document with lots of information--but the 
project is STARTING.  Not ending; personally I didn't think that 
there would be huge following on LKML.  I thought those interested
in the topic would read the spec we have, see where they like it 
and where they don't and then hopefully give me feedback to make 
the spec and the results better.  This isn't something that 
can be solved overnight.

What I'm seeing from the messages is that a lot of people have 
been thinking about this topic, and a lot of people have ideas 
on how they think the problems best solved.

Areas of common desire to be looked at:

1. validate kernel interfaces (i.e.: kernel janitor)
2. common logging mechanisms (i.e.: not POSIX logging)
3. validation/testing tools capabilities
4. driver-howto; best known methods by kernel driver 
   developers for writing stable maintainable drivers

I am trying to understand what people are looking for so that I 
can provide meaningful posts.

That said, I will go back and address the specific questions that
you and others have asked.

> thanks,
> 
> greg k-h
> 

-RobR

^ permalink raw reply	[flat|nested] 21+ messages in thread
* RE: [ANNOUNCE] Linux Hardened Device Drivers Project
@ 2002-09-24 23:29 Rhoads, Rob
  0 siblings, 0 replies; 21+ messages in thread
From: Rhoads, Rob @ 2002-09-24 23:29 UTC (permalink / raw)
  To: 'Greg KH', Rhoads, Rob; +Cc: 'linux-kernel@vger.kernel.org'

> From: Greg KH [mailto:greg@kroah.com]
> On Tue, Sep 24, 2002 at 02:46:35PM -0700, Rhoads, Rob wrote:
> > 
> > First throw away any idea of a spec. That was a bad idea. :)
> > 
> > Next, turn the first section, "Stability & Reliability" of our 
> > original doc into a "Driver Hardening HOWTO". It would be a 
> > list of characteristics that all good drivers should have, 
> > packed with examples to back it up. 
> 
> Sounds very good.  I recommend that it be written in DocBook and added
> to the Documentation/DocBook directory of the kernel tree.

Agreed. :-)

> 
> > BTW, by no means did I or anyone involved on this project, ever 
> > mean to imply that the current drivers in the kernel are "bad". 
> > Rather, I'd like to capture a list of the best practices and 
> > document them. In any event our current list needs to be 
> > strengthened with concrete examples. My thinking is that we 
> > should work with the Kernel Janitor project. This is where 
> > Intel can probably really help out.
> 
> Great, the janitor project can really use extra people to help out.  I
> suggest that you read over their TODO list again and pick up 
> the pieces
> from there that are missing from your "Driver Hardening HOWTO".

I will do.

[snip]

> 
> It would be wonderful if there were some good FI tools that were
> available for our use.  It can only help to make better drivers.
> 
> Thank you for your response, and for listening to the community.
> 
> greg k-h
>

-RobR

^ permalink raw reply	[flat|nested] 21+ messages in thread
* RE: [ANNOUNCE] Linux Hardened Device Drivers Project
@ 2002-09-24 21:46 Rhoads, Rob
  2002-09-24 23:07 ` Greg KH
  0 siblings, 1 reply; 21+ messages in thread
From: Rhoads, Rob @ 2002-09-24 21:46 UTC (permalink / raw)
  To: 'Greg KH', Rhoads, Rob; +Cc: 'linux-kernel@vger.kernel.org'

> From: Greg KH [mailto:greg@kroah.com]
> 
[snip]
> 
> > An underlying theme tends to revolve around the binding
> > of the concepts of 'hardening' and RAS features being 
> > added to drivers.  We will be looking into splitting 
> > these two different approaches out from this singular 
> > document and into their appropriate locations.
> 
> Where would these locations be?
> 

First throw away any idea of a spec. That was a bad idea. :)

Next, turn the first section, "Stability & Reliability" of our 
original doc into a "Driver Hardening HOWTO". It would be a 
list of characteristics that all good drivers should have, 
packed with examples to back it up. 

BTW, by no means did I or anyone involved on this project, ever 
mean to imply that the current drivers in the kernel are "bad". 
Rather, I'd like to capture a list of the best practices and 
document them. In any event our current list needs to be 
strengthened with concrete examples. My thinking is that we 
should work with the Kernel Janitor project. This is where 
Intel can probably really help out.

The section on Instrumentation should be broken up and each piece 
dealt with separately as separate project. Most likely killed outright 
or as part of existing efforts. I see this section as not having
anything to do with driver hardening and more to do with driver RAS.

POSIX Event Logging-- is a dead issue. The mailing list feedback 
is making that point very clear, many thanks. The current
thread on an alternative, seems like there is some sort of need
for event logging. Whatever the final decision that the Linux 
community decides, we'll do.

There seems to be a desire to have some sort of driver diagnostics.
We can work on that with the existing linux-diag project.

Statistics needs to be debated on its own merits. There are some 
arguments for keeping it, but I think that stats could be better 
handled in user-space and NOT kernel space. IMHO it's not driver 
hardening, therefore it's a separate project. 

Third, the most of the section on High Availability should just 
be axed. The big exception being "fault injection testing". 

I see value in keeping FI testing. I think that getting FI 
tools into the hands of developers would be worthwhile. Why? 
Because letting people do more complicated testing, produces 
better code. I think there is room for us to work on a set of 
FI tools.

> > If you are interested (even if you aren't) please go 
> > to http://lists.sourceforge.net/lists/listinfo/hardeneddrivers-discuss 
> and subscribe to the mailing list.
>
> Sorry, but major kernel driver discussions should occur on lkml.
> 
> thanks,
> 
> greg k-h


^ permalink raw reply	[flat|nested] 21+ messages in thread
* Re: [ANNOUNCE] Linux Hardened Device Drivers Project
@ 2002-09-23 13:23 Manfred Spraul
  0 siblings, 0 replies; 21+ messages in thread
From: Manfred Spraul @ 2002-09-23 13:23 UTC (permalink / raw)
  To: Lars Marowsky-Bree; +Cc: linux-kernel, Rhoads, Rob

Lars Marowsky-Bree <lmb@suse.de> wrote:
 >
> I fully support the idea to audit the Linux device drivers - using guidelines,
> hardware fault injection, stress testing etc - and fixing any potential bugs.
> This is obviously a very important task, because the drivers are some of the
> most ugly code I've seen in the kernel.
> 

Are there any recipies for stress testing drivers?
I have my own list of stress tests I run on my network drivers, but the 
list is more or less random:

http://www.colorfullife.com/~manfred/net-stress/net-stresstest.txt

--
	Manfred


^ permalink raw reply	[flat|nested] 21+ messages in thread
* RE: [ANNOUNCE] Linux Hardened Device Drivers Project
@ 2002-09-21  3:00 Rhoads, Rob
  2002-09-21  3:47 ` Andre Hedrick
  2002-09-21  4:09 ` Mark Veltzer
  0 siblings, 2 replies; 21+ messages in thread
From: Rhoads, Rob @ 2002-09-21  3:00 UTC (permalink / raw)
  To: 'Andre Hedrick'; +Cc: 'linux-kernel@vger.kernel.org'

> Obvious this is a way for the telecom folks to get something 
> for free that
> really should be paid for by funding the project with CASH.  
> Or funding (a) startup(s) related to generating such support.
>
> Regardless, it takes (fill in the blank) to boldly ask people 
> to add APIs
> for an industry who is only interested in using and not contributing.
> Prove that all the stuff which is going to be plugged into these
> security-hole^Wbug-generators^Wfeatures will be scheduled for 
> open source.

This project is open to anyone who wants to participate and is
being paid for by Intel and a host of other companies. The 
idea is to enable Linux to play in the Carrier space with all
the work given away under the GPL.

> Or this another attempt to try and take over the license and shove BSD
> down the piles?

The project is open and released under the terms of the GPL. 

> 
> Pointed Blunt Raw, but nice.
> 
> Regards,
> 
> Andre Hedrick
> LAD Storage Consulting Group
> 
> PS: I see a lot of "wants", are there any "gives" ?

What paying professional developers to work on an Open Source project 
and giving their work away under the terms of the GPL isn't enough?

+=+=+
Rob Rhoads                     mailto:rob.rhoads@intel.com
Staff Software Engineer        office: 503-677-5498
Telecom Software Platforms     
Intel Communications Group

This email message solely contains my own personal views, and not
necessarily those of my employer.


^ permalink raw reply	[flat|nested] 21+ messages in thread
[parent not found: <mailman.1032570840.22498.linux-kernel2news@redhat.com>]
* [ANNOUNCE] Linux Hardened Device Drivers Project
@ 2002-09-21  0:26 Rhoads, Rob
  2002-09-21  1:06 ` Andre Hedrick
                   ` (4 more replies)
  0 siblings, 5 replies; 21+ messages in thread
From: Rhoads, Rob @ 2002-09-21  0:26 UTC (permalink / raw)
  To: 'linux-kernel@vger.kernel.org'; +Cc: Rhoads, Rob


Project Announcement:
--------------------
We've started a new project on sourceforge.net w/ focus 
on hardening Linux device drivers for highly available 
systems. This project is being worked on with folks from 
OSDL's CGL and DCL projects as well.

Initially we've created a specification, a few kernel modules
that implement a set of driver programming interfaces, and
a sample device driver that demonstrates those interfaces.

We are actively soliciting involvement with others in the 
Linux developer community. We need your help to make this 
project relevant and useful. 

Below I've included an overview of the hardened driver project. 
By no means is this complete or final. It's just our initial
attempt at defining what is meant by the term hardened driver
and the areas we want to focus on.

For additional info, please checkout the links at the bottom 
of this message and the Hardened Drivers web site at 
http://hardeneddrivers.sf.net.


Hardened Driver Project Overview:
--------------------------------
Device drivers have traditionally been a significant source 
of software faults. For this reason, they are of key concern
in improving the availability and stability of the operating
system. A critical element in creating Highly Available (HA)
environment is to reduce the likelihood of faults in key 
drivers, a methodology called driver hardening. 

A device driver is typically implemented with emphasis on 
the proper operation of the hardware. Attention to how it 
will function in the event of hardware faults is often 
minimal. Hardened drivers, on the other hand, are designed
with the assumption that the underlying hardware that they
control will fail. They need to respond to such failures by
handling faults gracefully, limiting the impact on the overall
system. Hardened device drivers must continue to operate when 
the hardware has failed (e.g. allow device fail-over), and 
must not allow the propagation of corrupt data from a failed 
device to other components of the system.

Hardened device drivers must also be active participants in 
the recovery of detected faults, by locally recovering them or
by reporting them to higher-level system management software 
that subsequently instructs the driver to take a specific 
action.

The goal of a hardened driver is to provide an environment 
in which hardware and software failures are transparent to 
the applications using their services, where possible. The 
way to effectively achieve this goal is to analyze a 
driver's software design and implement appropriate changes
to improve stability, reliability and availability, and 
to provide instrumentation for management middleware.

We believe that improving driver stability and reliability 
includes such measures as ensuring that all wait loops are
limited with a timeout, validating input and output data and
structuring the driver to anticipate hardware errors. 
Improving availability includes adding support for device
hot swapping and validating the driver with fault injection.
Instrumentation for management middleware includes functions
such as reporting of statistical indicators and logging of 
pertinent events to enable postmortem analysis in the event
of a failure.

To minimize instability contributed by device drivers and to 
enhance the availability of HA systems, we've attempted to 
define a set of requirements that a device driver should 
adhere to in order to be considered a hardened driver. We 
then define different hardening traits and the required 
programming interfaces to support these hardening traits.

We've identified four areas in which drivers can be hardened:
o Hardening with code robustness
o Hardening with event logging
o Hardening with diagnostics
o Hardening with resource monitoring and statistics

We've also identified some key areas we feel are most critical
to overall system stability and plan to focus initial hardening 
efforts on drivers for network interface cards, physical storage, 
and logical storage.

Project Links:
-------------
o The Driver Hardening website:  
  http://hardeneddrivers.sourceforge.net

o The SourceForge project related info:
  http://sourceforge.net/projects/hardeneddrivers

o Hardened Drivers Mailing List Info (subscribe here):
  http://lists.sourceforge.net/mailman/listinfo/hardeneddrivers-discuss


+=+=+
Rob Rhoads                     mailto:rob.rhoads@intel.com
Staff Software Engineer        office: 503-677-5498
Telecom Software Platforms
Intel Communications Group

This email message solely contains my own personal views, and not
necessarily those of my employer.


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2002-09-24 23:24 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-24 19:30 [ANNOUNCE] Linux Hardened Device Drivers Project Rhoads, Rob
2002-09-24 19:55 ` Greg KH
  -- strict thread matches above, loose matches on Subject: below --
2002-09-24 23:29 Rhoads, Rob
2002-09-24 21:46 Rhoads, Rob
2002-09-24 23:07 ` Greg KH
2002-09-23 13:23 Manfred Spraul
2002-09-21  3:00 Rhoads, Rob
2002-09-21  3:47 ` Andre Hedrick
2002-09-21  4:09 ` Mark Veltzer
     [not found] <mailman.1032570840.22498.linux-kernel2news@redhat.com>
2002-09-21  2:14 ` Pete Zaitcev
2002-09-21  3:30   ` Andre Hedrick
2002-09-21  0:26 Rhoads, Rob
2002-09-21  1:06 ` Andre Hedrick
2002-09-21 10:41   ` Bernd Eckenfels
2002-09-21 11:20     ` Russell King
2002-09-21  1:40 ` Greg KH
2002-09-23  6:13 ` Randy.Dunlap
2002-09-23 12:31 ` Lars Marowsky-Bree
2002-09-23 22:38 ` Rhoads, Rob
2002-09-24  0:08   ` Greg KH
2002-09-24 17:12   ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).