Revision a247c3a97a0216b18a46243eda26081f1928ec37 authored by Andrea Arcangeli on 22 September 2010, 20:05:12 UTC, committed by Linus Torvalds on 23 September 2010, 00:22:39 UTC
The below bug in fork led to the rmap walk finding the parent huge-pmd
twice instead of just once, because the anon_vma_chain objects of the
child vma still point to the vma->vm_mm of the parent.

The patch fixes it by making the rmap walk accurate during fork.  It's not
a big deal normally but it worth being accurate considering the cost is
the same.

Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Acked-by: Johannes Weiner <jweiner@redhat.com>
Acked-by: Rik van Riel <riel@redhat.com>
Acked-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent df08cdc
Raw File
ewrk3.txt
The EtherWORKS 3  driver in this distribution is  designed to  work with all
kernels   >  1.1.33   (approx)  and  includes  tools   in  the  'ewrk3tools'
subdirectory   to  allow  set   up of   the   card,  similar  to  the  MSDOS
'NICSETUP.EXE' tools provided on  the DOS drivers  disk (type 'make' in that
subdirectory to make the tools).

The supported  cards are DE203,  DE204 and DE205.  All   other cards are NOT
supported - refer to 'depca.c' for running the LANCE based network cards and
'de4x5.c'  for the  DIGITAL   Semiconductor PCI  chip  based  adapters  from
Digital.

The ability to load  this driver as a  loadable module has been included and
used extensively  during the driver  development (to save those  long reboot
sequences). To utilise this ability, you have to do 8 things:

    0) have a copy of the loadable modules code installed on your system.
    1) copy ewrk3.c from the  /linux/drivers/net directory to your favourite
    temporary directory.
    2) edit the  source code near  line 1898 to reflect  the I/O address and
    IRQ you're using.
    3) compile  ewrk3.c, but include -DMODULE in  the command line to ensure
    that the correct bits are compiled (see end of source code).
    4) if you are wanting to add a new  card, goto 5. Otherwise, recompile a
    kernel with the ewrk3 configuration turned off and reboot.
    5) insmod ewrk3.o
          [Alan Cox: Changed this so you can insmod ewrk3.o irq=x io=y]
          [Adam Kropelin: Multiple cards now supported by irq=x1,x2 io=y1,y2]
    6) run the net startup bits for your new eth?? interface manually 
    (usually /etc/rc.inet[12] at boot time). 
    7) enjoy!

    Note that autoprobing is not allowed in loadable modules - the system is
    already up and running and you're messing with interrupts.

    To unload a module, turn off the associated interface 
    'ifconfig eth?? down' then 'rmmod ewrk3'.

The performance we've  achieved so far  has been measured through the 'ttcp'
tool   at 975kB/s.  This  measures  the  total  TCP  stack performance which
includes the   card,  so don't  expect   to get   much nearer  the  1.25MB/s
theoretical Ethernet rate.


Enjoy!

Dave
back to top