opensuse:kernel.git
15 years ago[PATCH] avoid allocating pte_chains for unshared pages
Andrew Morton [Fri, 19 Jul 2002 04:09:02 +0000 (21:09 -0700)]
[PATCH] avoid allocating pte_chains for unshared pages

Patch from David McCracken.  It is an optimisation to the rmap
pte_chains.

In the common case where a page is mapped by only a single pte, we
don't need to allocate a pte_chain structure.  Just make the page's
pte_chain pointer point straight at that pte and flag this with
PG_direct.

15 years ago[PATCH] leave truncate's orphaned pages on the LRU
Andrew Morton [Fri, 19 Jul 2002 04:08:49 +0000 (21:08 -0700)]
[PATCH] leave truncate's orphaned pages on the LRU

Fix to the page reclaim code from Rik.

Anonymous pages which have buffers arise when
truncate_complete_page()'s call to ->releasepage() failed.  Those pages
may still be mapped into process address spaces.

We should not remove them from the LRU, because that makes them
unswappable and they hang around until process exit.

15 years ago[PATCH] minimal rmap
Andrew Morton [Fri, 19 Jul 2002 04:08:35 +0000 (21:08 -0700)]
[PATCH] minimal rmap

This is the "minimal rmap" patch, writen by Rik, ported to 2.5 by Craig
Kulsea.

Basically,

before: When the page reclaim code decides that is has scanned too many
unreclaimable pages on the LRU it does a scan of process virtual
address spaces for pages to add to swapcache.  ptes pointing at the
page are unmapped as the scan proceeds.  When all ptes referring to a
page have been unmapped and it has been written to swap the page is
reclaimable.

after: When an anonymous page is encountered on the tail of the LRU we
use the rmap to see if it hasn't been referenced lately.  If so then
add it to swapcache.  When the page is again encountered on the LRU, if
it is still unreferenced then try to unmap all ptes which refer to it
in one hit, and if it is clean (ie: on swap) then free it.

The rest of the VM - list management, the classzone concept, etc
remains unchanged.

There are a number of things which the per-page pte chain could be
used for.  Bill Irwin has identified the following.

(1)  page replacement no longer goes around randomly unmapping things

(2)  referenced bits are more accurate because there aren't several ms
        or even seconds between find the multiple pte's mapping a page

(3)  reduces page replacement from O(total virtually mapped) to O(physical)

(4)  enables defragmentation of physical memory

(5)  enables cooperative offlining of memory for friendly guest instance
        behavior in UML and/or LPAR settings

(6)  demonstrable benefit in performance of swapping which is common in
        end-user interactive workstation workloads (I don't like the word
        "desktop"). c.f. Craig Kulesa's post wrt. swapping performance

(7)  evidence from 2.4-based rmap trees indicates approximate parity
        with mainline in kernel compiles with appropriate locking bits

(8)  partitioning of physical memory can reduce the complexity of page
        replacement searches by scanning only the "interesting" zones
        implemented and merged in 2.4-based rmap

(9)  partitioning of physical memory can increase the parallelism of page
        replacement searches by independently processing different zones
        implemented, but not merged in 2.4-based rmap

(10) the reverse mappings may be used for efficiently keeping pte cache
        attributes coherent

(11) they may be used for virtual cache invalidation (with changes)

(12) the reverse mappings enable proper RSS limit enforcement
        implemented and merged in 2.4-based rmap

The code adds a pointer to struct page, consumes additional storage for
the pte chains and adds computational expense to the page reclaim code
(I measured it at 3% additional load during streaming I/O).  The
benefits which we get back for all this are, I must say, theoretical
and unproven.  If it has real advantages (or, indeed, disadvantages)
then why has nobody demonstrated them?

There are a number of things remaining to be done:

1: Demonstrate the above advantages.

2: Make it work with pte-highmem  (Bill Irwin is signed up for this)

3: Don't add pte_chains to non-shared pages optimisation (Dave McCracken's
   patch does this)

4: Move the pte_chains into highmem too (Bill, I guess)

5: per-cpu pte_chain freelists (Rik?)

6: maybe GC the pte_chain backing pages. (Seems unavoidable.  Rik?)

7: multithread the page reclaim code.  (I have patches).

8: clustered add-to-swap.  Not sure if I buy this.  anon pages are
   often well-ordered-by-virtual-address on the LRU, so it "just
   works" for benchmarky loads.  But there may be some other loads...

9: Fix bad IO latency in page reclaim (I have lame patches)

10: Develop tuning tools, use them.

11: The nightly updatedb run is still evicting everything.

15 years agoMerge bk://lsm.bkbits.net/linus-2.5
Linus Torvalds [Fri, 19 Jul 2002 03:53:24 +0000 (20:53 -0700)]
Merge bk://lsm.bkbits.net/linus-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux

15 years agoMerge http://linuxusb.bkbits.net/agpgart-2.5
Linus Torvalds [Fri, 19 Jul 2002 03:50:44 +0000 (20:50 -0700)]
Merge http://linuxusb.bkbits.net/agpgart-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux

15 years ago[PATCH] IDE 100
Martin Dalecki [Fri, 19 Jul 2002 02:34:06 +0000 (19:34 -0700)]
[PATCH] IDE 100

  Trivia time:

  - C99 conforming initializations by Rusty.

  - ide__sti() -> local_irq_enable() and its friends.

15 years ago[PATCH] 2.5.26 IDE 99
Martin Dalecki [Fri, 19 Jul 2002 02:26:04 +0000 (19:26 -0700)]
[PATCH] 2.5.26 IDE 99

Most noticable in the patch:

1. we handle IRQ sharing now better then ever

2. survives quite a lot of testing by few people. Forexample
cat /dev/hdb > /dev/null, where /dev/hdb contains a CD-ROM
with a big cratch on the surface making sure it's broken :-).
it's BTW. amanzing how wide the cratch had to be until errors
ocurred.

3. Doesn't play with rq_rdev and friends

Fri Jul 12 05:04:32 CEST 2002 ide-clean-99

- Push nIEN disabling down at the place where we are finished with a particular
   request.

- First round of command line parser cleanups by Gerald Champagne.

- Unfold the drive eviction functions in do_request(). This allowed us to
   realize that we don't have to re-get the major/minor numbers of the device we
   are action on from the raw device field of the currently running request. One
   significant place less in kernel where major/minor data gets manipulated.

- Move the big IDE_BUSY loop out of do_request to do_ide_request().  This makes
   us realize that we don't have to clear the IDE_BUSY bit just before
   reentering do_request to look for more requests still pending on the queue
   and set it immediately again.

   This is fixing a tinny race on the code path from IRQ or timer function,
   where we had a tinny window between the clearing of the IDE_BUSY bit and
   reentering the request queue for completely unrelated requests to come in to
   our way.

- Don't return any value in do_reset1(). It's always ATA_OP_CONTINUES. Split it
   up in to two functions one for disks (well in fact channels) and one for
   ATAPI devices. It turns out that they can be moved to the places where they
   are used to clarify the code flow. The only function remaining is
   do_reset_channel() now.

- Duplicate code from ide_do_drive_code explicitely in ide_raw_taskfile().
   Simplify ide_raw_taskfile() thereafter. Realize that ide_do_drive_cmd()
   is now only used by ATAPI devices. Move it therefore to atapi.c.

- Do busy polling for ATAPI reset operations. This is much safer then the
   previous timer games played there. It simply doesn't make sense to give the
   bus up during such a subtile operation. We don't have to disable IRQs here as
   well, since we are already under the protection of the do_request mechanisms.
   (Well hopefully...)

- Remove no longer used reset_poll() function. poll_timeout and friends are now
   used only in pdc4030 code. Those function where not called from IRQ context
   but they where set as handlers and not as expiry functions.

- Return ATA_OP_CONTINUES instead of ATA_OP_FINISHED in ata_error(), to signal
   that we are willing to retry the operation until the maximal number of retry
   attempts is exceeded. Returning ATA_OP_FINISHED without prior end_request()
   hangs the system.

- Apply trivia from DJ patch set.

- Apply small configuration fix to ide-pci.c from Muli Ben-Yehuda.

- Feed add_blkdev_randomness with information we already have in struct
   ata_channel *ch->major, instead of using the major(macro) on the request in
   question.

- Make ide_raw_taskfile use the same request submission mechanism as
   tcq_invalidate_queue(). Something similar would be ideal for ioctl() code as
   well.

- Implement actual device reset. Realize that the recalibration procedure is
   doomed by the standard. Don't try to recover by recalibrating devices
   therefore -just our retry mechanism should work in those cases. And suddenly
   the error handling code is IRQ safe.

- Reinvent the ATA reset operation, since it is apparently needed. We still
   have to do the whole transfer timing reconfiguration there.

- Move drive_is_ready(), which is in reality an attempt to check for IRQ
   requesters without clearing the IRQ line, over to the place where it belongs:
   device.c, which is the direct device access abstraction place.  Rename it to
   ata_status_irq() to prevent global name space pollution.

- Updates to the pdc202xxx host chip controller setup code by Bart³omiej
   ¯o³nierkiewicz:

   Forward port 2.4 patch by Hank Yang from Promise:

- Add PDC20271 support
- Disable LBA48 support on PDC20262
- Fix ATAPI UDMA port value
- Add new quirk drive
- Adjust timings for all drives when using ATA133
- Update pdc202xx_reset() waiting time

- Mark TCQ as dangerous and add some bits about it to the help.

- Add some missing exports.

- Some small ide-scsi.c host allocation fixes by sullivan.

15 years ago[PATCH] MD - Get rid of dev in rdev and use bdev exclusively.
Neil Brown [Fri, 19 Jul 2002 02:12:13 +0000 (19:12 -0700)]
[PATCH] MD - Get rid of dev in rdev and use bdev exclusively.

Get rid of dev in rdev and use bdev exclusively.

There is an awkwardness here in that userspace sometimes
passed down a dev_t (e.g. hot_add_disk) and sometime
a major and a minor (e.g. add_new_disk).  Should we convert
both to kdev_t as the uniform standard....
That is what was being done but it seemed very clumsy and
things were gets converted back and forth a lot.

As bdget used a dev_t, I felt safe in staying with dev_t once I
had one rather than converting to kdev_t and back.

15 years ago[PATCH] MD - Change partition_name calls to bdev_partition_name were possible.
Neil Brown [Fri, 19 Jul 2002 02:12:00 +0000 (19:12 -0700)]
[PATCH] MD - Change partition_name calls to bdev_partition_name were possible.

Change partition_name calls to bdev_partition_name were possible.

All part of decreasing reliance on device numbers... atleast in
appearance.

15 years ago[PATCH] MD - Remove the sb from the mddev
Neil Brown [Fri, 19 Jul 2002 02:11:45 +0000 (19:11 -0700)]
[PATCH] MD - Remove the sb from the mddev

Remove the sb from the mddev

Now that al the important information is in mddev, we don't need
to have an sb off the mddev.  We only keep the per-device ones.

Previously we determined if "set_array_info" had been run byb checking
mddev->sb.  Now we check mddev->raid_disks on the assumption that
any valid array MUST have a non-zero number of devices.

15 years ago[PATCH] MD - Remove dependance on superblock
Neil Brown [Fri, 19 Jul 2002 02:11:27 +0000 (19:11 -0700)]
[PATCH] MD - Remove dependance on superblock

Remove dependance on superblock

All the remaining field of interest in the superblock
get duplicated in the mddev struture and this is treated as
authoritative.  The superblock gets completely generated at
write time, and all useful information extracted at read time.

This means that we can slot in different superblock formats
without affecting the bulk of the code.

15 years ago[PATCH] MD - Move persistent from superblock to mddev
Neil Brown [Fri, 19 Jul 2002 02:11:14 +0000 (19:11 -0700)]
[PATCH] MD - Move persistent from superblock to mddev

Move persistent from superblock to mddev

Tidyup calc_dev_sboffset and calc_dev_size on the way

15 years ago[PATCH] MD - Remove number and raid_disk from personality arrays
Neil Brown [Fri, 19 Jul 2002 02:11:00 +0000 (19:11 -0700)]
[PATCH] MD - Remove number and raid_disk from personality arrays

Remove number and raid_disk from personality arrays

These are redundant.  number not needed any more
raid_disk never was as that is the index.

15 years ago[PATCH] MD - nr_disks is gone from multipath/raid1
Neil Brown [Fri, 19 Jul 2002 02:10:44 +0000 (19:10 -0700)]
[PATCH] MD - nr_disks is gone from multipath/raid1

nr_disks is gone from multipath/raid1

Never used.

15 years ago[PATCH] MD - Remove old_dev field.
Neil Brown [Fri, 19 Jul 2002 02:10:30 +0000 (19:10 -0700)]
[PATCH] MD - Remove old_dev field.

Remove old_dev field.

We used to monitor the pervious device number of a
component device for superblock maintenance.  This is
not needed any more.

15 years ago[PATCH] MD - Don't maintain disc status in superblock.
Neil Brown [Fri, 19 Jul 2002 02:10:16 +0000 (19:10 -0700)]
[PATCH] MD - Don't maintain disc status in superblock.

Don't maintain disc status in superblock.

The state is now in rdev so we don't maintain it
in superblock any more.
We also nolonger test content of superblock for
disk status
mddev->spare is now an rdev and not a superblock fragment.

15 years ago[PATCH] MD - when writing superblock, generate from mddev/rdev info.
Neil Brown [Fri, 19 Jul 2002 02:10:02 +0000 (19:10 -0700)]
[PATCH] MD - when writing superblock, generate from mddev/rdev info.

when writing superblock, generate from mddev/rdev info.

Rather than relying on the superblock info being kept up-to-date,
we regenerate the superblock from mddev/rdev info before
each write.

15 years ago[PATCH] MD - Add "degraded" field to md device
Neil Brown [Fri, 19 Jul 2002 02:09:48 +0000 (19:09 -0700)]
[PATCH] MD - Add "degraded" field to md device

Add "degraded" field to md device

This is used to determine if a spare should be added
without relying on the superblock.

15 years ago[PATCH] MD - Add in_sync flag to each rdev
Neil Brown [Fri, 19 Jul 2002 02:09:33 +0000 (19:09 -0700)]
[PATCH] MD - Add in_sync flag to each rdev

Add in_sync flag to each rdev

This currently mirrors the MD_DISK_SYNC superblock flag,
but soon it will be authoritative and the superblock will
only be consulted at start time.

15 years ago[PATCH] MD - Add raid_disk field to rdev
Neil Brown [Fri, 19 Jul 2002 02:09:21 +0000 (19:09 -0700)]
[PATCH] MD - Add raid_disk field to rdev

Add raid_disk field to rdev

Also change find_rdev_nr to find based on position
in array (raid_disk) not position in superblock (number).

15 years ago[PATCH] MD - Improve handling of spares in md
Neil Brown [Fri, 19 Jul 2002 02:09:07 +0000 (19:09 -0700)]
[PATCH] MD - Improve handling of spares in md

Improve handling of spares in md

- hot_remove_disk is given the raid_disk rather than descriptor number
  so that it can find the device in internal array directly, no search.
- spare_inactive now uses mddev->spare->raid_disk instead of
  mddev->spare->number so it can find the device directly without searching
- spare_write does not need number.  It can use mddev->spare->raid_disk as above.
- spare_active does not need &mddev->spare.  It finds the descriptor directly
  and fixes it without this pointer

15 years ago[PATCH] MD - Remove concept of 'spare' drive for multipath.
Neil Brown [Fri, 19 Jul 2002 02:08:56 +0000 (19:08 -0700)]
[PATCH] MD - Remove concept of 'spare' drive for multipath.

Remove concept of 'spare' drive for multipath.

Multipath now treats all working devices as
active and does io to to first working one.

15 years ago[PATCH] MD - Set desc_nr more sanely.
Neil Brown [Fri, 19 Jul 2002 02:08:42 +0000 (19:08 -0700)]
[PATCH] MD - Set desc_nr more sanely.

Set desc_nr more sanely.

Currently rdev->desc_nr is set in sync_sbs which is typcially
called just before writing out the superblocks, which is an
odd place to set it.
It is also called when a new disk is added (which is sane) and
when an old disc is imported ... which is quesitonable.

With this patch it is set when a new disk is added, and when
the superblocks are being analysed, which makes lots of sense.

MULTIPATH is particularly an issue here.  The old code tried
to figure the desc_nr for an rdev by matching device numbers in
the superblock.  This doesn't make a lot of sense as
device numbers can change.  Now MULTIPATH components
get sequential desc_nrs.

15 years ago[PATCH] MD - Move md_update_sb calls
Neil Brown [Fri, 19 Jul 2002 02:08:28 +0000 (19:08 -0700)]
[PATCH] MD - Move md_update_sb calls

Move md_update_sb calls

When a change which requires a superblock update happens
at interrupt time, we currently set a flag (sb_dirty) and
wakeup to per-array thread (raid1/raid5d/multipathd) to
do the actual update.

This patch centralises this.  The sb_update is now done
by the mdrecoveryd thread.  As this is always woken up after
the error handler is called, we don't need the call to wakeup
the local thread any more.

With this, we don't need "md_update_sb" to lock the array
any more and only use __md_update_sb which is local to md.c
So we rename __md_update_sb back to md_update_sb and stop
exporting it.

15 years ago[PATCH] MD - Pass the correct bdev to md_error
Neil Brown [Fri, 19 Jul 2002 02:08:13 +0000 (19:08 -0700)]
[PATCH] MD - Pass the correct bdev to md_error

Pass the correct bdev to md_error

After a call to generic_make_request, bio->bi_bdev can have changed
(e.g. by a re-mapped like raid0).  So we cannot trust it for reporting
the source of an error.  This patch takes care to find the correct
bdev.

15 years ago[PATCH] MD - Rdev list cleanups.
Neil Brown [Fri, 19 Jul 2002 02:07:59 +0000 (19:07 -0700)]
[PATCH] MD - Rdev list cleanups.

Rdev list cleanups.

An "rdev" can be on three different lists.
 - the list of all rdevs
 - the list of pending rdevs
 - the list of rdevs for a given mddev

The first list is now only used to list "unused" devices in
/proc/mdstat, and only pending rdevs can be unused, so this list
isn't necessary.
An rdev cannot be both pending and in an mddev, so we know rdev will
only be on one list at at time.

This patch discards  the all_raid_disks list, and changes the
pending list to use "same_set" in the rdev.  It also changes
/proc/mdstat to iterate through pending devices, rather than through
all devices.

So now an rdev is only on one list, either the pending list
or the list of rdevs for a given mddev.  This means that
ITERATE_RDEV_GENERIC doesn't need to be told which field,
to walk down: there is ony one.

15 years ago[PATCH] MD - Get rid of find_rdev_all
Neil Brown [Fri, 19 Jul 2002 02:07:44 +0000 (19:07 -0700)]
[PATCH] MD - Get rid of find_rdev_all

Get rid of find_rdev_all

find_rdev_all is now only used to check if a device is already
used in an md array.

We change lock_rdev so that it claims the bdev for
the specific rdev rather than for rdevs in general.
Now lock_rdev will check if the bdev is inuse by another array
or not, so the find_rdev_all check isn't needed and is removed,
along with find_rdev_all itself.

We also make sure that the error code from lock_rdev is
propagated up properly.

15 years ago[PATCH] MD - Use symbolic names for multipath (-4) and linear (-1)
Neil Brown [Fri, 19 Jul 2002 02:07:27 +0000 (19:07 -0700)]
[PATCH] MD - Use symbolic names for multipath (-4) and linear (-1)

Use symbolic names for multipath (-4) and linear (-1)

Also, a variable called "level" was being used to store a
"level" and a "personality" number.  This is potentially
confusing, so it is now two variables.

15 years ago[PATCH] MD - Don't "analyze_sb" when creating new array.
Neil Brown [Fri, 19 Jul 2002 02:07:14 +0000 (19:07 -0700)]
[PATCH] MD - Don't "analyze_sb" when creating new array.

Don't "analyze_sb" when creating new array.

When creating a new array (and we have an mddev->sb),
don't both to analyze the superblocks.  There is no point.
Also, these means we always allocate the array sb in
analyze_sbs, rather than conditionally.

15 years ago[PATCH] MD - Embed bio in mp_bh rather than separate allocation.
Neil Brown [Fri, 19 Jul 2002 02:07:01 +0000 (19:07 -0700)]
[PATCH] MD - Embed bio in mp_bh rather than separate allocation.

Embed bio in mp_bh rather than separate allocation.

multipath currently allocates an mp_bh and a bio for each
request.  With this patch, the bio is made to be part of the
mp_bh so there is only one allocation, and it from a private
pool (the bio was allocated from a shared pool).

Also remove "remaining" and "cmd" from mp_bh which aren't used.
And remove spare (unused) from multipath_private_data.

15 years ago[PATCH] MD - 27 - Remove state field from multipath mp_bh structure.
Neil Brown [Fri, 19 Jul 2002 02:06:46 +0000 (19:06 -0700)]
[PATCH] MD - 27 - Remove state field from multipath mp_bh structure.

Remove state field from multipath mp_bh structure.

The MPBH_Uptodate flag is set but never used,
The MPBH_SyncPhase flag was never used.
These a both legacy from the copying of raid1.c

MPBH_PreAlloc is no longer needed as due to use of
mempools, so the state field can go...

15 years ago[PATCH] MD - Get multipath to use mempool
Neil Brown [Fri, 19 Jul 2002 02:06:32 +0000 (19:06 -0700)]
[PATCH] MD - Get multipath to use mempool

Get multipath to use mempool

... rather than maintaining it's own mempool

15 years ago[PATCH] MD - Remove dead consistancy checking code from multipath.
Neil Brown [Fri, 19 Jul 2002 02:06:18 +0000 (19:06 -0700)]
[PATCH] MD - Remove dead consistancy checking code from multipath.

Remove dead consistancy checking code from multipath.

This "consistancy_check" is carried over from raid1 on which multipath
was based, and was not used in raid1 and has since been removed.  Now
it gets removed from multipath too.

15 years ago[PATCH] MD - Remove bdput calls from raid personalities.
Neil Brown [Fri, 19 Jul 2002 02:06:03 +0000 (19:06 -0700)]
[PATCH] MD - Remove bdput calls from raid personalities.

Remove bdput calls from raid personalities.

Some of the md personalities currently hold a counted reference
on a bdev.  This is not necessary as the main md module will always
hold a counted reference in the rdev.
This patch removes the code to take and drop these unnecessary
references.

15 years ago[PATCH] Fix typo in net/sunrpc/xprt.c
Trond Myklebust [Thu, 18 Jul 2002 13:11:48 +0000 (06:11 -0700)]
[PATCH] Fix typo in net/sunrpc/xprt.c

The appended patch fixes a typo in net/sunrpc/xprt.c: We want to
ensure that we play safe, and only increment the UDP congestion window
when we have successfully transmitted a full frame of data.

In addition, we should perhaps still 'slow start' the UDP congestion
code rather than assuming that we can immediately fire off 8
requests. IOW revert the value of RPC_INITCWND.

15 years ago[PATCH] Fix NFS locking bug
Trond Myklebust [Thu, 18 Jul 2002 03:44:41 +0000 (20:44 -0700)]
[PATCH] Fix NFS locking bug

Here's one bugfix which might help to explain the GRANTED failure. The
bug has been there all along (so I'll probably want to send this to
Marcelo too).

The code in question in supposed to ensure that we don't wait on a
reply if the RPC call doesn't expect one. However, if the socket
transmission failed for some reason, we do actually want to loop and
try again...

This bug will hit the RPC call in nlmsvc_grant_blocked().

15 years agoagpgart: added "-agp" to the .c files that are for specific hardware types, based...
Greg Kroah-Hartman [Wed, 17 Jul 2002 09:16:42 +0000 (02:16 -0700)]
agpgart: added "-agp" to the .c files that are for specific hardware types, based on mailing list comments.

15 years agoMerge kroah.com:/home/greg/linux/BK/bleeding_edge-2.5
Greg Kroah-Hartman [Wed, 17 Jul 2002 03:29:40 +0000 (20:29 -0700)]
Merge kroah.com:/home/greg/linux/BK/bleeding_edge-2.5
into kroah.com:/home/greg/linux/BK/agpgart-2.5

15 years agoMerge kroah.com:/home/greg/linux/BK/bleeding_edge-2.5
Greg Kroah-Hartman [Wed, 17 Jul 2002 03:16:22 +0000 (20:16 -0700)]
Merge kroah.com:/home/greg/linux/BK/bleeding_edge-2.5
into kroah.com:/home/greg/linux/BK/lsm-2.5

15 years agoKernel version 2.5.26
Linus Torvalds [Tue, 16 Jul 2002 09:48:33 +0000 (02:48 -0700)]
Kernel version 2.5.26

15 years ago[PATCH] RPC over UDP congestion control updates [8/8]
Trond Myklebust [Tue, 16 Jul 2002 08:55:05 +0000 (01:55 -0700)]
[PATCH] RPC over UDP congestion control updates [8/8]

When determining who gets access to the socket, give priority to
requests that are being resent. Despite the fact that congestion
control now applies to resends, we still want to ensure that resends
get ACKed as soon as possible (and before we start sending off new
requests).

15 years ago[PATCH] RPC over UDP congestion control updates [7/8]
Trond Myklebust [Tue, 16 Jul 2002 08:54:53 +0000 (01:54 -0700)]
[PATCH] RPC over UDP congestion control updates [7/8]

  - Divorce the allocation of free request slots and the congestion
    control. Make the congestion control apply only to when we
    actually send data over the wire. This means that we *do* apply
    congestion control to resent requests: if a timeout has occured,
    and there are too many requests on the wire, delay resending until
    the congestion algorithm allows it.

  - Improve spinlocking by putting the congestion avoidance algoritm
    under xprt->sock_lock. This lock has to be taken *anyway* in
    (almost) all cases where we are updating the congestion control
    data.

15 years ago[PATCH] RPC over UDP congestion control updates [6/8]
Trond Myklebust [Tue, 16 Jul 2002 08:54:38 +0000 (01:54 -0700)]
[PATCH] RPC over UDP congestion control updates [6/8]

Eliminate the arbitrary timeouts in xprt_adjust_cwnd(). Strict
enforcement of the congestion avoidance algorithm as detailed in Van
Jacobson's 1998 paper http://www-nrg.ee.lbl.gov/nrg-papers.html
Congestion Avoidance and Control.

15 years ago[PATCH] RPC over UDP congestion control updates [5/8]
Trond Myklebust [Tue, 16 Jul 2002 08:54:24 +0000 (01:54 -0700)]
[PATCH] RPC over UDP congestion control updates [5/8]

Clean up the Van Jacobson network congestion control code.

15 years ago[PATCH] RPC over UDP congestion control updates [4/8]
Trond Myklebust [Tue, 16 Jul 2002 08:54:11 +0000 (01:54 -0700)]
[PATCH] RPC over UDP congestion control updates [4/8]

Cleanups for the socket locking mechanism.

Improve RPC request ordering by ensuring that RPC tasks that are
already queued on xprt->sending get sent before tasks that happen to
get scheduled just when there is a free slot.

In case the socket send buffer is full, queue the tasks on
xprt->pending rather than xprt->sending in order to eliminate the risk
of accidental wakeups from xprt_release_write() and xprt_write_space().

15 years ago[PATCH] RPC over UDP congestion control updates [3/8]
Trond Myklebust [Tue, 16 Jul 2002 08:53:56 +0000 (01:53 -0700)]
[PATCH] RPC over UDP congestion control updates [3/8]

Improve the response to timeouts. As requests time out, we delay
timing out the remaining requests (in fact we follow exponential
backoff). This is done because we assume either that the round trip
time has been underestimated, or that the network/server is congested,
and we need to back off the resending of new requests.

15 years ago[PATCH] RPC over UDP congestion control updates [2/8]
Trond Myklebust [Tue, 16 Jul 2002 08:53:43 +0000 (01:53 -0700)]
[PATCH] RPC over UDP congestion control updates [2/8]

Implement a count of the number of timeouts that have occured since
we last recorded a successful reply from the server.

For the moment this information is merely used in order to improve the
estimate of whether or not the server is down. It will be used in
patch 3/8 in order to improve the timeout backoff algorithm.

15 years ago[PATCH] RPC over UDP congestion control updates [1/8]
Trond Myklebust [Tue, 16 Jul 2002 08:53:29 +0000 (01:53 -0700)]
[PATCH] RPC over UDP congestion control updates [1/8]

Implement the basic round trip timing algorithm in order to adapt the
timeout values for the most common NFS operations to the server's
rate of response.
Algorithm is described in Van Jacobson's paper 1998 paper
on http://www-nrg.ee.lbl.gov/nrg-papers.html, and is the same as is
used for most TCP stacks.

Following the *BSD code, we implement separate rtt timers for GETATTR,
LOOKUP, READ/READDIR/READLINK, and WRITE. In addition to this, there
is one extra timer for the COMMIT operation.
All the remaining RPC calls use the current system in which a fixed
timeout value gets set by the 'timeo' mount option.

In case of a timeout, the current exponential backoff algoritm is
implemented. Subsequent patches will improve this...

15 years ago[PATCH] Fix bug in xdr_kunmap()
Trond Myklebust [Mon, 15 Jul 2002 14:38:14 +0000 (07:38 -0700)]
[PATCH] Fix bug in xdr_kunmap()

The following patch fixes a bug in xdr_kunmap() that has been known to
deadlock TCP mounts on highmem systems.  It also removes an unnecessary
call to flush_page_to_ram().

15 years agoMerge http://linuxusb.bkbits.net/linus-2.5
Linus Torvalds [Mon, 15 Jul 2002 11:18:33 +0000 (04:18 -0700)]
Merge http://linuxusb.bkbits.net/linus-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux

15 years agoUSB: fix flag name in ohci driver due to previous patch.
Greg Kroah-Hartman [Mon, 15 Jul 2002 10:49:09 +0000 (03:49 -0700)]
USB: fix flag name in ohci driver due to previous patch.

15 years ago[PATCH] ohci misc
David Brownell [Mon, 15 Jul 2002 10:47:21 +0000 (03:47 -0700)]
[PATCH] ohci misc

This patch  includes the innocuous bits from a larger one that
I'm still working on (mostly unlink fixes):

- updates comments
- flags TDs that were seen in the donelist
- removes some bogus whitespace (at EOL etc) and tabs
- checks for an enumeration issue that might cause trouble
- delays IRQs a bit more aggressively
- shortens TD submit paths a smidgeon (smaller ".o")
- updates some of the debug output
- sanitizes usb_make_path() output on the SA-1111

15 years ago[PATCH] A cleanup of Paul's 2.5 hiddev update.
Vojtech Pavlik [Mon, 15 Jul 2002 10:37:47 +0000 (03:37 -0700)]
[PATCH] A cleanup of Paul's 2.5 hiddev update.

Get rid of #ifdefs in hid-core again. (For you, Greg.)
Move the uref generation code from hid-core to hiddev to make things cleaner.

15 years ago[PATCH] usb-storage: catch bad commands
Matthew Dharm [Mon, 15 Jul 2002 10:19:17 +0000 (03:19 -0700)]
[PATCH] usb-storage: catch bad commands

The purpose of this patch is to trap all commands which have a bogus
request_bufflen.  Much logic is devoted to calculating the proper length of
the transfer, but according to discussions I've had on linux-scsi, this is
really a bug in whatever is originating the bad command.

Hopefully, after people use this patch for a while, we'll eliminate all the
offending sources and can remove quite a bit of logic from the driver.

15 years ago[PATCH] Reintroduce proper returning of -EFAULT to hiddev.c
Vojtech Pavlik [Mon, 15 Jul 2002 10:18:59 +0000 (03:18 -0700)]
[PATCH] Reintroduce proper returning of -EFAULT to hiddev.c

One of my earlier patches backed out a change that fixed all
copy_to_user calls to properly return -EFAULT if needed. This puts the
change back in.

15 years ago[PATCH] Updates for hiddev by Paul Stewart
Vojtech Pavlik [Mon, 15 Jul 2002 10:18:42 +0000 (03:18 -0700)]
[PATCH] Updates for hiddev by Paul Stewart

I've merged a patch Paul Stewart sent me some time ago, which should make life
easier for the guys writing UPS daemons.

15 years agoRemove duplicated function declaration.
Linus Torvalds [Mon, 15 Jul 2002 10:01:25 +0000 (03:01 -0700)]
Remove duplicated function declaration.

15 years agoMerge http://linux-ntfs.bkbits.net/ntfs-tng-2.5
Linus Torvalds [Mon, 15 Jul 2002 08:28:48 +0000 (01:28 -0700)]
Merge http://linux-ntfs.bkbits.net/ntfs-tng-2.5
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux

15 years agoNTFS: 2.0.21 - Check for, and refuse to work with too large files/directories/volumes.
Anton Altaparmakov [Mon, 15 Jul 2002 23:22:58 +0000 (00:22 +0100)]
NTFS: 2.0.21 - Check for, and refuse to work with too large files/directories/volumes.
- Limit volume size at mount time to 2TiB on architectures where
  unsigned long is 32-bits (fs/ntfs/super.c::parse_ntfs_boot_sector()).
  This is the most we can do without overflowing the 32-bit limit of
  the block device size imposed on us by sb_bread() and sb_getblk()
  for the time being.
- Limit file/directory size at open() time to 16TiB on architectures
  where unsigned long is 32-bits (fs/ntfs/file.c::ntfs_file_open() and
  fs/ntfs/dir.c::ntfs_dir_open()). This is the most we can do without
  overflowing the page cache page index.

15 years ago[PATCH] Typo in linux_include_asm-sh_pgtable-2level.h
James Mayer [Mon, 15 Jul 2002 06:11:57 +0000 (23:11 -0700)]
[PATCH] Typo in linux_include_asm-sh_pgtable-2level.h

15 years ago[PATCH] Typo in linux_drivers_net_wan_syncppp.c
James Mayer [Mon, 15 Jul 2002 06:11:39 +0000 (23:11 -0700)]
[PATCH] Typo in linux_drivers_net_wan_syncppp.c

15 years ago[PATCH] [patch, 2.5] sound_oss_ad1848.c doesn't release region on error
Marcus Alanen [Mon, 15 Jul 2002 06:11:22 +0000 (23:11 -0700)]
[PATCH] [patch, 2.5] sound_oss_ad1848.c doesn't release region on error

  Doesn't check request_region and doesn't release region on failed
  kmalloc.

15 years ago[PATCH] Typo in linux_arch_i386_mm_init.c
James Mayer [Mon, 15 Jul 2002 06:11:04 +0000 (23:11 -0700)]
[PATCH] Typo in linux_arch_i386_mm_init.c

15 years ago[PATCH] Typo in linux_drivers_media_video_pms.c
James Mayer [Mon, 15 Jul 2002 06:10:44 +0000 (23:10 -0700)]
[PATCH] Typo in linux_drivers_media_video_pms.c

15 years ago[PATCH] [PATCH] duplicate declarations #2
Thomas 'Dent' Mirlacher [Mon, 15 Jul 2002 06:10:15 +0000 (23:10 -0700)]
[PATCH] [PATCH] duplicate declarations #2

 this one slipped through the last fix for the redeclarations i sent,
 please apply this on to of the other one.

 description:
   umount_tree() is just used in namespace.[ch], so it declaration
   belongs into namespace.h and not fs.h

15 years ago[PATCH] Typo in linux_arch_i386_kernel_mpparse.c
James Mayer [Mon, 15 Jul 2002 06:09:58 +0000 (23:09 -0700)]
[PATCH] Typo in linux_arch_i386_kernel_mpparse.c

15 years ago[PATCH] PATCH 2.5: kconfig use of $ARCH (7_12)
Greg Banks [Mon, 15 Jul 2002 06:09:39 +0000 (23:09 -0700)]
[PATCH] PATCH 2.5: kconfig use of $ARCH (7_12)

 Use of the $ARCH variable is undocumented; the sparc and sparc64 ports
 define the bool constants CONFIG_SPARC32 and CONFIG_SPARC64 respectively
 for this purpose.

15 years ago[PATCH] PATCH 2.5: kconfig use of $ARCH (2_12)
Greg Banks [Mon, 15 Jul 2002 06:09:11 +0000 (23:09 -0700)]
[PATCH] PATCH 2.5: kconfig use of $ARCH (2_12)

 Use of the $ARCH variable is undocumented; the alpha port defines the
 bool constant CONFIG_ALPHA for this purpose.

15 years ago[PATCH] PATCH 2.5: kconfig use of $ARCH (6_12)
Greg Banks [Mon, 15 Jul 2002 06:08:55 +0000 (23:08 -0700)]
[PATCH] PATCH 2.5: kconfig use of $ARCH (6_12)

 Use of the $ARCH variable is undocumented; the sparc and sparc64 ports
 define the bool constants CONFIG_SPARC32 and CONFIG_SPARC64 respectively
 for this purpose.

15 years ago[PATCH] PATCH 2.5: kconfig use of $ARCH (8_12)
Greg Banks [Mon, 15 Jul 2002 06:08:39 +0000 (23:08 -0700)]
[PATCH] PATCH 2.5: kconfig use of $ARCH (8_12)

 Use of the $ARCH variable is undocumented; the sparc and sparc64 ports
 define the bool constants CONFIG_SPARC32 and CONFIG_SPARC64 respectively
 for this purpose.

15 years ago[PATCH] PATCH 2.5: kconfig synchronise banners 2 (2_3)
Greg Banks [Mon, 15 Jul 2002 06:08:23 +0000 (23:08 -0700)]
[PATCH] PATCH 2.5: kconfig synchronise banners 2 (2_3)

 1/14 definitions of CONFIG_SOUND have trivially different banners.

15 years ago[PATCH] PATCH 2.5: kconfig EXPERIMENTAL misspelled 2
Greg Banks [Mon, 15 Jul 2002 06:08:07 +0000 (23:08 -0700)]
[PATCH] PATCH 2.5: kconfig EXPERIMENTAL misspelled 2

 The word EXPERIMENTAL in the banner for symbol CONFIG_HPT34X_AUTODMA
 was almost spelled right.

 [Rusty: this is a resend of 'PATCH 2.5: kconfig EXPERIMENTAL misspelled'
  with context trimmed to try to avoid spurious patch failure]

15 years ago[PATCH] PATCH 2.5: kconfig use of $ARCH (12_12)
Greg Banks [Mon, 15 Jul 2002 06:07:52 +0000 (23:07 -0700)]
[PATCH] PATCH 2.5: kconfig use of $ARCH (12_12)

 Use of the $ARCH variable is undocumented; the sparc and sparc64 ports
 define the bool constants CONFIG_SPARC32 and CONFIG_SPARC64 respectively
 for this purpose.

15 years ago[PATCH] Typo in linux_arch_sparc64_kernel_time.c
James Mayer [Mon, 15 Jul 2002 06:07:34 +0000 (23:07 -0700)]
[PATCH] Typo in linux_arch_sparc64_kernel_time.c

15 years ago[PATCH] PATCH 2.5: kconfig spurious bool dependencies (2_2)
Greg Banks [Mon, 15 Jul 2002 06:07:10 +0000 (23:07 -0700)]
[PATCH] PATCH 2.5: kconfig spurious bool dependencies (2_2)

 Some instances of the "bool" statement have what appear to be
 dependencies like "dep_bool" after the 2nd argument, which are
 silently ignored by all current parsers.  I have either trimmed
 the arguments or converted the "bool" to "dep_bool" as seemed
 appropriate.

15 years ago[PATCH] Typo in linux_kernel_pm.c
James Mayer [Mon, 15 Jul 2002 06:06:55 +0000 (23:06 -0700)]
[PATCH] Typo in linux_kernel_pm.c

15 years ago[PATCH] ipc_ statics
Stephen Rothwell [Mon, 15 Jul 2002 06:06:37 +0000 (23:06 -0700)]
[PATCH] ipc_ statics

 This patch just makes some stuff in ipc/ static.

15 years ago[PATCH] Typo in linux_arch_mips64_math-emu_ieee754.c
James Mayer [Mon, 15 Jul 2002 06:06:23 +0000 (23:06 -0700)]
[PATCH] Typo in linux_arch_mips64_math-emu_ieee754.c

15 years ago[PATCH] pass panic message to panic notifier chain
Jeff Dike [Mon, 15 Jul 2002 06:06:06 +0000 (23:06 -0700)]
[PATCH] pass panic message to panic notifier chain

 This is needed for things running on the host which want to know when UML
 panics, and what the panic message was.

15 years ago[PATCH] PATCH 2.5: kconfig use of $ARCH (3_12)
Greg Banks [Mon, 15 Jul 2002 06:05:43 +0000 (23:05 -0700)]
[PATCH] PATCH 2.5: kconfig use of $ARCH (3_12)

 Use of the $ARCH variable is undocumented; the alpha and i386 ports
 define the bool constants CONFIG_ALPHA and CONFIG_X86 for this purpose.

15 years ago[PATCH] PATCH 2.5: kconfig use of $ARCH (4_12)
Greg Banks [Mon, 15 Jul 2002 06:05:21 +0000 (23:05 -0700)]
[PATCH] PATCH 2.5: kconfig use of $ARCH (4_12)

 Use of the $ARCH variable is undocumented; the sparc and sparc64 ports
 define the bool constants CONFIG_SPARC32 and CONFIG_SPARC64 respectively
 for this purpose.

15 years ago[PATCH] Typo in linux_include_asm-parisc_semaphore.h
James Mayer [Mon, 15 Jul 2002 06:04:58 +0000 (23:04 -0700)]
[PATCH] Typo in linux_include_asm-parisc_semaphore.h

15 years ago[PATCH] Typo in linux_include_linux_raid_md_k.h
James Mayer [Mon, 15 Jul 2002 06:04:25 +0000 (23:04 -0700)]
[PATCH] Typo in linux_include_linux_raid_md_k.h

15 years ago[PATCH] PATCH 2.5: kconfig missing EXPERIMENTAL 2 (4_7)
Greg Banks [Mon, 15 Jul 2002 06:04:01 +0000 (23:04 -0700)]
[PATCH] PATCH 2.5: kconfig missing EXPERIMENTAL 2 (4_7)

 Five symbols CONFIG_ACER_PICA_61, CONFIG_MIPS_EV96100, CONFIG_MIPS_EV64120,
 CONFIG_MIPS_ATLAS, and CONFIG_MIPS_MALTA depend on CONFIG_EXPERIMENTAL but
 do not say so in their banners.

15 years ago[PATCH] Typo in linux_include_asm-m68k_mac_via.h
James Mayer [Mon, 15 Jul 2002 06:03:37 +0000 (23:03 -0700)]
[PATCH] Typo in linux_include_asm-m68k_mac_via.h

15 years ago[PATCH] Typo in linux_arch_i386_kernel_apic.c
James Mayer [Mon, 15 Jul 2002 06:03:22 +0000 (23:03 -0700)]
[PATCH] Typo in linux_arch_i386_kernel_apic.c

15 years ago[PATCH] sound_oss_sb_audio.c copy_from_user buglets
Mikael Pettersson [Mon, 15 Jul 2002 06:03:08 +0000 (23:03 -0700)]
[PATCH] sound_oss_sb_audio.c copy_from_user buglets

 Fallout of copy_from_user() cleanups. sb16_copy_from_user()
 returns void not int, so it can't return -EFAULT.

15 years ago[PATCH] redundant declarations (#1_15)
Thomas 'Dent' Mirlacher [Mon, 15 Jul 2002 06:02:51 +0000 (23:02 -0700)]
[PATCH] redundant declarations (#1_15)

 this patch fixes redundant declarations in 2.5.24

15 years ago[PATCH] Typo in linux_arch_i386_kernel_smp.c
James Mayer [Mon, 15 Jul 2002 06:02:37 +0000 (23:02 -0700)]
[PATCH] Typo in linux_arch_i386_kernel_smp.c

15 years ago[PATCH] Typos in Documentation_video4linux_meye.txt (2.4.19-rc1)
James Mayer [Mon, 15 Jul 2002 06:02:19 +0000 (23:02 -0700)]
[PATCH] Typos in Documentation_video4linux_meye.txt (2.4.19-rc1)

15 years ago[PATCH] PATCH: fix 'implicit declaration of function memset' in ppp modules
Muli Ben-Yehuda [Mon, 15 Jul 2002 06:02:03 +0000 (23:02 -0700)]
[PATCH] PATCH: fix 'implicit declaration of function memset' in ppp modules

15 years ago[PATCH] PATCH 2.5: kconfig synchronise banners 3
Greg Banks [Mon, 15 Jul 2002 06:01:35 +0000 (23:01 -0700)]
[PATCH] PATCH 2.5: kconfig synchronise banners 3

  1/3 definitions of CONFIG_BLK_DEV_FD have trivially different banners.

  [Rusty: this is the one davem didn't like, rejigged to remove "PC"
   from one case instead of add it to the other 2].

15 years ago[PATCH] Typo in linux_include_asm-cris_pgtable.h
James Mayer [Mon, 15 Jul 2002 06:01:15 +0000 (23:01 -0700)]
[PATCH] Typo in linux_include_asm-cris_pgtable.h

15 years ago[PATCH] 2.5.24 mm_slab.c for DocBook
Keith Owens [Mon, 15 Jul 2002 06:00:51 +0000 (23:00 -0700)]
[PATCH] 2.5.24 mm_slab.c for DocBook

  '**' in comments misleads DocBook, the comment is for a structure that
  DocBook cannot handle.

15 years ago[PATCH] redundant declarations (#2_15)
Thomas 'Dent' Mirlacher [Mon, 15 Jul 2002 06:00:37 +0000 (23:00 -0700)]
[PATCH] redundant declarations (#2_15)

 this patch fixes redundant declarations in 2.5.24

15 years ago[PATCH] Use proper ____cacheline_aligned define in netfilter_ip_tables.c
Thiemo Seufer [Mon, 15 Jul 2002 06:00:20 +0000 (23:00 -0700)]
[PATCH] Use proper ____cacheline_aligned define in netfilter_ip_tables.c

  this replaces the __attribute__ with its proper define.

15 years ago[PATCH] redundant declarations (#11_15)
Thomas 'Dent' Mirlacher [Mon, 15 Jul 2002 06:00:06 +0000 (23:00 -0700)]
[PATCH] redundant declarations (#11_15)

 this patch fixes redundant declarations in 2.5.24

15 years ago[PATCH] redundant declarations (#3_15)
Thomas 'Dent' Mirlacher [Mon, 15 Jul 2002 05:59:49 +0000 (22:59 -0700)]
[PATCH] redundant declarations (#3_15)

 this patch fixes redundant declarations in 2.5.24

15 years ago[PATCH] Typo in linux_fs_partitions_msdos.c
James Mayer [Mon, 15 Jul 2002 05:59:36 +0000 (22:59 -0700)]
[PATCH] Typo in linux_fs_partitions_msdos.c

15 years ago[PATCH] Don't always ask about Intel RNGs
Tom Rini [Mon, 15 Jul 2002 05:59:21 +0000 (22:59 -0700)]
[PATCH] Don't always ask about Intel RNGs

 Hello.  The following patch hides the option for Intel (i8x0) RNG
 support when it's not a useful option.  This is based off of a patch
 That was accepted in 2.4.19-pre6.  While I suspect this is an ia32-only
 option, it is possible that it's used on ia64 as well, so we test for
 both before offering Intel i8x0 RNG support.