- 31 Dec, 2003 15 commits
-
-
David Mosberger authored
name-clash with declaration of routine of the same name in <linux/efi.h>.
-
David Mosberger authored
-
David Mosberger authored
into tiger.hpl.hp.com:/data1/bk/lia64/to-linus-2.5
-
David Mosberger authored
Patch from Stephane: Fix a bug in perfmon_default_smpl.c by which we would systematically lose one sample at every buffer overflow.
-
David Mosberger authored
are overly verbose and replace them with calls to sys_ni_syscall().
-
David Mosberger authored
(both for native and x86 system call tracing). This is needed by recent versions of strace and UML likes to do that, too.
-
David Mosberger authored
cancel system-call restart.
-
Russell King authored
Fix what seems to be a typo preventing .../power/state from working.
-
James Bottomley authored
The x86 build depends on NR_VECTORS being defined. This symbol, however, was put only into mach-default/irq_vectors.h The attached patch adds it to voyager too.
-
bk://kernel.bkbits.net/davem/net-2.6Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/linux
-
David S. Miller authored
into kernel.bkbits.net:/home/davem/tg3-2.6
-
Jeroen Vreeken authored
-
Hideaki Yoshifuji authored
-
Bart De Schuymer authored
-
David S. Miller authored
into nuts.ninka.net:/disk1/davem/BK/net-2.6
-
- 30 Dec, 2003 25 commits
-
-
David Mosberger authored
process. The root-cause of the problem was that ptrace() tried to copy the portion of the register backing store that landed on the kernel stack back to users-space, but the resulting state was inconsistent if the inferior process was in the middle of a system-call (as would always be the case for strace). The solution is to avoid all needless copying and to instead ensure that when accessing a memory location that may belong to a thread's register-backing store, we attach to that particular thread, rather than the thread identified by the PID argument. If the thread happens to be unattachable, we fall back to using the thread identified by the PID argument. This should have the desired effect if the thread has terminated already and if the thread is running while ptrace() is trying to access its state, all bets are off anyhow and there are no coherency guarantees. In other words, this should be doing the right thing under all circumstances. The patch also fixes the case where PT_AR_BSP and/or PT_CFM are written while the inferior process is in the middle of a system call. This makes arguments passed to GDB inferior calls come out right. The patch was tested with strace -f and the GDB testsuite, which showed no regressions compared to the previous version of the kernel.
-
Linus Torvalds authored
-
David S. Miller authored
into kernel.bkbits.net:/home/davem/sparc-2.6
-
David S. Miller authored
-
David S. Miller authored
-
Linus Torvalds authored
-
Linus Torvalds authored
The old 50ms / 30ms timeouts apparently weren't sufficient with some disks.
-
David S. Miller authored
into nuts.ninka.net:/disk1/davem/BK/sparc-2.6
-
Andrew Morton authored
The reworked firmware loader in the DVB patches needs the fix to the call_usermodehelper() return value. From: Rusty Russell <rusty@rustcorp.com.au> MODULE_ALIAS_BLOCK() and MODULE_ALIAS_CHAR() define aliases of form "XXX-<major>-<minor>", so we should probe for modules using this form. Unfortunately in 2.4, block aliases were "XXX-<major>" and char aliases were of both forms. Ideally, all modules would now be using MODULE_ALIAS() macros to define their aliases, and the old configuration files wouldn't matter as much. Unfortunately, this hasn't happened, so we make request_module() return the exit status of modprobe, and then do fallback when probing for char and block devices. (Kudos to Chris Wright, I stole his kernel_thread flags).
-
Andrew Morton authored
From: David Hinds <dhinds@sonic.net> This removes dead PCI-related code from the i82365 driver.
-
Andrew Morton authored
From: David Hinds <dhinds@sonic.net> This changes the PCMCIA CIS parsing code to use kmalloc() rather than allocating some data structures on the kernel stack.
-
Andrew Morton authored
From: David Hinds <dhinds@sonic.net> This fixes interrupt allocation for 16-bit PCMCIA cards, so that on systems supporting ISA bus interrupts, if all ISA interrupts are unavailable, we'll fall back on sharing the bridge PCI interrupt.
-
Andrew Morton authored
From: David Hinds <dhinds@sonic.net> This fixes half/full duplex selection for certain NE2000 compatible PCMCIA cards.
-
Andrew Morton authored
From: David Hinds <dhinds@sonic.net> This just sets missing logging levels for printk's in yenta_socket.
-
Andrew Morton authored
From: David Hinds <dhinds@sonic.net> I have not been actively maintaining PCMCIA for 2.6; I tried asking the more active developers to see if someone would step into the job but they were not willing to do so at this time. I'll still submit patches from time to time. (David has a ./CREDITS entry, of course). We should really put in Russell King here, but I'll let him do that himself.
-
Andrew Morton authored
From: Tom Rini <trini@kernel.crashing.org> Peter Wahl <PeterWahl@web.de> PPC32: Fix the mkprep util to work correctly on Solaris 8. - There is a very odd problem with the alignment of dword_t values which causes this program to not work correctly when compiled on Solaris 8. The workaround is not use a pointer and to memcpy the values instead.
-
Andrew Morton authored
From: Tom Rini <trini@kernel.crashing.org> Fix compilation of arch/ppc/kernel/ppc_ksyms.c on !CONFIG_PPC_STD_MMU 'mol_trampoline' is only defined on CONFIG_PPC_STD_MMU. Therefore this file will not compile on !CONFIG_PPC_STD_MMU without this change.
-
Andrew Morton authored
From: Tom Rini <trini@kernel.crashing.org> The following patch fixes the 'znetboot' and 'znetbootrd' targets so that they work again. - Update the comments to reflect how things work with the correct usages now. - Fix the znetboot / znetbootrd targets. We now always set end-y, and use this to figure out what image will be tftpboot'ed.
-
Andrew Morton authored
From: Tom Rini <trini@kernel.crashing.org> Currently a number of Motorola PPC32 machine will not boot, as the final zImage isn't built correctly for them.
-
bk://firebox.phunnypharm.org:4040Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/linux
-
bk://kernel.bkbits.net/davem/net-2.6Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/linux
-
-
Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/akpm
-
Andrew Morton authored
From: James Bottomley <James.Bottomley@SteelEye.com> The compiler justly complains in this: unsigned int regnr = *(loff_t *) v, i; if (regnr == 0) { seq_puts(p, " "); #ifdef CONFIG_SMP for (i = 0; i < NR_CPUS; i++) #endif seq_printf(p, " CPU%02d ", i); That i is uninitialised if CONFIG_SMP is not set.
-
Andrew Morton authored
From: Ram Pai <linuxram@us.ibm.com> I have enclosed a patch that fixes a bunch of performance bugs in the readahead code. Below is a brief summary of the problems noticed and the proposed fixes with some results: Problem 1: Readahead code closes the readahead window and goes into slowread path, if a file is accessed the first time at an offset notequal to zero. In the case of databases(especially in db2), a file may not be accessed at offset 0 the first time though the i/o's are sequential. Fix to Problem 1: min = get_min_readahead(ra); orig_next_size = ra-next_size; - if (ra-next_size == 0 && offset == 0) { + if (ra-next_size == 0) { ------------------------------------------------------------------------ ------------------------------------------------------------------------ Problem 2: After fixing Problem, the readahead window still does not open up the first time, if all the pages requested are already in the page cache. This time the window closes because of pagecache hits instead of misses. To fix this we put in these changes. - check_ra_success(ra, ra-size, actual, orig_next_size); + if(!first_access) { + check_ra_success(ra, ra-size, actual, orig_next_size); + } ------------------------------------------------------------------------ ------------------------------------------------------------------------ Problem 3: In the case of large random reads, the readahead window is read in, the moment there is a hit in the active window. And it turns out that in most of the cases the readahead window gets scrapped, because the next large random read does not even touch any of the pages in that readahead window. We fixed this by introducing lazy readahead. Basically we wait till the last page in the active window gets a hit. And once the last page is hit, the readahead window is then read in. This fix gave a tremendous boost in the performance. To fix this the changes we put in were: /* * This read request is within the current window. It is time * to submit I/O for the ahead window while the application is * crunching through the current window. */ - if (ra-ahead_start == 0) { + if (ra-ahead_start == 0 && offset == (ra-start + ra-size -1)) { ------------------------------------------------------------------------ ------------------------------------------------------------------------ Problem 4: If the request page does not fall in the active window and is not the first page of the read ahead window, we scrap both the active window and the readahaed window and read in the active window. But it turns out that we read in a lot of pages in the active window based on the size of the 'projected readahead window size' (the next_size variable). And we end up using part of the active window and waste the remaining. We put in a fix where we read in just as many pages in the active window based on the number of pages used in the recent past. Again this gave us another big boost in performance and ended up beating the performance of aio patch on a DSS workload. The fix to this is: * ahead window and get some I/O underway for the new * current window. */ + if (!first_access && preoffset = ra-start && + preoffset < (ra-start + ra-size)) { + ra-size = preoffset - ra-start + 2; + } else { + ra-size = ra-next_size; ------------------------------------------------------------------------ ------------------------------------------------------------------------ Problem 5: With all the above fixes there is very low chance that the readahead window shall close. But however if it does, we found that the slow read path is really slow. Any loss of sequentiality in the slow read path is penalized heavily by closing the window back to zero. So we fixed this by decreasing the window size by one anytime we loose sequentiality and increasing in by 1 if we didn't. if (offset != ra-prev_page + 1) { - ra-size = 0; /* Not sequential */ + ra-size = ra-size?ra-size-1:0; /*Notsequential */ ------------------------------------------------------------------------ With the above set of fixes we got about 28% improvement in DSS workload which is about 5% more than what we got with the suparna's aio patch. This patch compared equivalent to suparna's aio patch with aio-stress run. It fared better than aio patch for large random io. We are yet to run a bunch of other benchmarks to evaluate this patch. We would like to get your inputs on this patch and any suggestions you may have to improve it. I have enclosed a patch with all these changes along with some changes to the comments that reflect the new behaviour. NOTE: the above patch reverts suparna's aio patch.
-