Contents
Changes
- Added multiple quota points inside VPS support
- Added /proc/vz/devperms with VPS device permisions
- Mainstream fixes (proc serialization, emt64)
- Finished merging x86-64 patches
- Removed fairscheduler debug/started its optimization
- Fairscheduler CPU limit and AMD lockup fixes
- Multiple drivers updates
Compatibility
- Changed location of kernel provided quota files. For more info, see comment to diff-vzdq-quotafile-20050929 patch.
Configs
Same as 022stab038.1 plus:
- +
CONFIG_FORCEDETH=m
- +
CONFIG_ACPI=y
- +
CONFIG_GART_IOMMU=y
(in x86-64) - +
CONFIG_MEGARAID_NEWGEN=y
- +
CONFIG_MEGARAID_MM=y
- +
CONFIG_MEGARAID_MAILBOX=y
- +
CONFIG_SCSI_MEGARAID
is removed
Patches
diff-vzdq-quotafile-20050929
This patch reimplements /proc/vz/vzaquota - a directory containing entries for each vzquota-enabled superblock with aquota.user and aquota.group files.
The goal is to support standard quota tools and allow VPSs to have multiple quota partitions.
Entries in /proc/vz/vzaquota are device numbers of the superblocks (a single 32-bit hexadecimal value as returned by sys_stat64, not a major-minor pair).
No VE start/stop hooks are used in this implementation. Compilation with unusual config options was fixed where I noticed.
diff-proc-locks-20050930
Serializes access to proc tree with rwsem.
diff-proc-moduleget-20050930
This patch fixes incorrect error path in proc_get_inode(), when module can't be get due to it's being unloaded. When try_module_get() fails, this function puts de(!) and still returns inode with non-getted de.
diff-ubc-vmamerge-20050930
Fix NULL dereference in vma_merge.
It is funny how gcc compiled it. gcc figured out that the pointer can be NULL sometimes and compiled a separate(!) block for this case, which was optimized to understand that the pointer is NULL.
diff-emt64-pagefault-mmsem-20050930
[PATCH] x86-64: avoid deadlock in page fault handler
Avoid deadlock when kernel fault happens inside mmap sem.
diff-emt64-pteindex-20050930
EMT64: add missing () around arguments of pte_index macro
diff-ubc-emt64-argpages-fix-20050929
This patch fixes UBC accounting on x86-64 to ia32 emulation when setup of arg pages is performed. Previous patch was broken.
diff-fairsched-singlelock-20050929
This patch is from fairsched performance improving series:
- it removes vsched->lock merging it with fairsched_lock. This greatly reduces number of locks on hot schedule path
- this also prepares code for balancing activation
- remove wrong BUG_ON in vcpu_put. on schedule_vcpu() restart VCPU can be already get...
- show_vsched() requires oops_in_progress when debug patches are dropped
diff-vzdq-emt64-casts-20050929
Type "int" can not be just casted (by gcc) to type "void *". Need to recast it via "unsigned long".
diff-ve-emt64-ipc-compile-20050929
This adds missed include <linux/ve_owner.h> to ipc to make it compile on x86-64.
diff-compat-emt64t-compile-20050929
Just add #include <linux/namespace.h> to kernel/compat.c to make it compile.
diff-ubc-compile-20050929
Replace include <ub/ub_task.h> from asm/thread_info.h into linux/sched.h - where it is really needed. This patch makes kernel to be compilable on non-i386 arches.
diff-emt64-quotactl32-20041102
[PATCH] x86_64: Add 32bit quota support
[untested, but other 64bit ports seem to get away with it]
sys_quotactl seems to be 32/64bit clean, enable it for 32bit.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff-ve-devpermexp-20050928
This patch exports get_device_perm_ve to be used in vzdq_file (check of allowed devices for /proc/vz/vzaquota).
diff-emt64-p4nmisetup-20050916
Ported part of patch from mainstream that initializes apic nmi watchdog for P4 CPU. This fixes strange oopses when NMI is ON on EMT64.
Bug 51143.
Bug 51206.
diff-fairsched-ia64-syscalls-20050927
This patch adds fairsched syscalls on ia64.
diff-ubc-ia64-syscalls-20050927
This patch adds UBC syscalls on ia64.
diff-ve-devfullperms-20050927
added permissions on /dev/full to default VPS set.
Bug 51512.
diff-security-emt64-nisc-20050905
[PATCH] Buffer overrun in arch/x86_64/sys_ia32.c:sys32_ni_syscall()
struct task_struct.comm is defined to be 16 chars, but arch/x86_64/sys_ia32.c:sys32_ni_syscall() and sys32_vm86_warning() copy it into a static 8 byte buffer, which will surely cause problems. This patch makes lastcomm[] the right size, and makes sure it can't be overrun. Since the code also goes to the effort of getting a local copy of current in "me", we may as well use it for printing the message.
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff-proc-cpuphysid-20050905
[PATCH] x86[64]: display phys_proc_id only when it is initialized
phys_proc_id gets initialized only when (smp_num_siblings > 1). But gets printed even when (smp_num_siblings == 1). As a result we print incorrect physical processor id in /proc/cpuinfo, when HT is disabled.
Signed-off-by:: "Venkatesh Pallipadi" <venkatesh.pallipadi@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff-emt64-lostegdeirq-up-20050905
[PATCH] x86_64: Fix lost edge triggered irqs on UP kernel
There are problems with IDE disks while running UP kernel on x86-64 - it complained a lot about lost irq from hda/hdc. At enable_irq() code calls hw_resend_irq(), but on x86-64 hw_resend_irq() does something useful only when CONFIG_SMP is defined, on UP systems it does nothing. Due to this IRQ is lost - and when IDE retries command, it can again happen that IRQ is delivered before IDE code does enable_irq(), and again and again, unless due to drive being lazy finally once kernel does enable_irq() before drive prepares its answer, and things move forward ... to next lost IRQ.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff-tty-compatioctls-20050905
[PATCH] x86_64: no TIOCSBRK/TIOCCBRK in ia32 emulation
In ia32 emulation, the amd64 kernel refuses the ioctls TIOCSBRK and TIOCCBRK with EINVAL. I've attached a patch that adds them to the compatibility list.
Since all architectures have these ioctls ("m68knommu" inherits them from "m68k", "um" from its host) and use the same code, I think adding them to compat_ioctl.h is the correct choice (as opposed to adding them to arch/x86_64/ia32/ia32_ioctl.c).
Signed-off-by: Werner Almesberger <werner@almesberger.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff-fs-quotcompat-20050927
Due to missing #ifdef kernel won't compile if CONFIG_QUOTA_COMPAT is not set.
diff-ve-ip-conntrack-init-20050926
diff-ve-ipc-shm-20050914
This patch removes obsolete macros from ipc/shm.c. It is necessary to remove these macros because on emt64 arch there are no free space after shmid_kernel struct for additional pointer.
diff-ve-ia64-taskvisibility-20050915
This patch fixes ia64 tasks accessing code: do_each_thread/for_each_process/find_task_by_pid
diff-ubc-ia64-execprio-20050915
This patch adds UBC EXECPRIO flag to ia64 arch.
diff-ubc-warnbadzap-20050921
This patch fixes compilation of warn_bad_zap when UBC=n.
diff-ve-ip-conntrack-debug-20050922
fixed compilation with CONFIG_NETFILTER_DEBUG enabled
diff-ubc-dcachenoubc-20050923
ub_dentry_charge() should drop dentry.d_lock and rcu_read_lock. Without UBCs compiled kernel gets stuck on the first lookup.
diff-ubc-ia64-discontig-20050923
When CONFIG_DISCONTIGMEM is ON mem_map symbol is not present, so pb_hash function refused to compile. It's ok to use page_to_pfn() macro in pb_hash() to calculate hash in both cases with and without DISCONTIGMEM.
diff-ve-procdevperms-20050923
This patch adds /proc/vz/devperms proc file to vzmon module. It shows device permissions per VPS. File line format is <veid> [bc] <perm> <maj>:(<min>|*)
diff-ve-procdevperms-20050930
Fixup of /proc/vz/devperms output
diff-ve-emt64-utsname-20050930
Virtualize utsname on EMT64, port from i386
diff-fairsched-sync-20051014
This patch replaces temporary diff-fairsched-amd-20051010, which fixed a problem with AMD processors described below.
Correct solution is to keep both fairscheduler and vsched in sync, i.e. having node->pcpus corresponding to the number of running VCPUs. So fairsched will select node for scheduling _only_ if it have an active selectable VCPU. The whole restart path in one place has gone.
diff-ubc-user-compile-20051014
- Remove kernel specific structure from userspace view;
- Add missed struct (ubstatfull_t). It was missed because it was not used in kernel code at all.
Bug 52195.
diff-ve-percpu-lat-opt-20051014
Small optimization for per-cpu scheduling latency accounting:
- Move lock in kstat_lat_pcpu_struct into structure with statistic fields to make them fit one cacheline;
- Make the structure cacheline aligned.
diff-ve-percpu-lat-fix-20051010
This patch fixes per cpu sched latency accounting: seq_counts were not protected for writers. This caused readers to hang in reading loop for ever.
diff-fairsched-cleanup-20051010
small cleanups in sched.c
diff-ms-rlimit-memlock-20050519
This patch fixes a RLIMIT_MEMLOCK issue, which is not a security actually in VZ due to UBC.
http://securityfocus.org/archive/1/386376/2005-01-07/2005-01-13/0
Bug 42254.
diff-ve-ia64-config-openvz-20051003,
diff-ubc-ia64-config-20051003,
diff-fairsched-ia64-config-20051003
Set of patches to add vz options in arch/ia64/Kconfig
diff-ms-sig-compat-20051007
[PATCH] compat: sigtimedwait
- Merge sys32_rt_sigtimedwait function in X86_64, IA64, PPC64, MIPS, SPARC64, S390 32 bit layer into 1 compat_rt_sigtimedwait function. It will also fix a bug of copy wrong information to 32 bit userspace siginfo structure on X86_64, IA64 and SPARC64 when calling sigtimedwait on 32 bit layer.
- Change all name the of siginfo_t32 structure in X86_64, IA64, MIPS, SPARC64 and S390 to the name compat_siginfo_t as used in PPC64.
- Patch introduced a macro __COMPAT_ENDIAN_SWAP__ in include/asm-mips/compat.h when MIPS kernel is compiled in little-endian mode. This macro is used to do byte swapping in function sigset_from_compat.
- This patch is only tested on X86_64 and IA_64.
Signed-off-by: Zou Nan hai <Nanhai.zou@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff-ms-emt64-tasksize-20051007
[PATCH] x86_64: TASK_SIZE fixes for compatibility mode processes
Appended patch will setup compatibility mode TASK_SIZE properly. This will fix atleast three known bugs that can be encountered while running compatibility mode apps.
- 32bit app doing this below mmap will now fail.
mmap((void *)(0xFFFFE000UL), 0x10000UL, PROT_READ|PROT_WRITE,
MAP_FIXED|MAP_PRIVATE|MAP_ANON, 0, 0);</code>
Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
GIT: 84929801e14d968caeb84795bfbb88f04283fbd9
http://www.kernel.org/git/?p=linux/kernel/git/chrisw/linux-2.6.13.y.git;a=commitdiff;h=84929801e14d968caeb84795bfbb88f04283fbd9
diff-ms-sendfile-20051007
If we use 64bit kernel on ia64/x86_64/s390 architecture, and we run 32bit binary on 32bit compatibility mode, sendfile system call seems not set offset argument.
This is because sendfile's return value is not zero but the code regards the result by return value is zero or not.
This problem will affect ia64/x86_64/s390 and not affect other architectures (mips/parisc/ppc64/sparc64).
diff-ve-emt64-veprintk-20051010
Some info-printk can be triggered by userspace process. No need to spoil main logbuf.
diff-mainstream-emt64-irqboot-20051010
Disable interrupts during SMP bogomips checking. This happend on our machines: when bogomips were counted IRQ hapanned, ran timers and oopsed.
Bug 51987.
diff-vzdq-cleanup-20051010
Small cleanup of VZDQ after recent changes by Andrey
diff-mainstream-forcedeath-20050911
[PATCH] forcedeth: Initialize link settings in every nv_open()
Rdiger found a bug in nv_open that explains some of the reports
with duplex mismatches:
nv_open calls nv_update_link_speed for initializing the hardware link speed
registers. If current link setting matches the values in np->linkspeed and
np->duplex, then the function does nothing.
Usually, doing nothing is the right thing, but not in nv_open: During nv_open, the registers must be initialized because the nic was reset.
The attached patch fixes that by setting np->linkspeed to an invalid value before calling nv_update_link_speed from nv_open.
Signed-Off-By: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Chris Wright <chrisw@osdl.org>
diff-ubc-flowcontrol-20051005
This patch fixes skb->truesize assignment, synchronizing it with mainstream. The problem was observed by Alexey and concerns TCP window size, which was improperly get as 48k instead of 64k by default. UBC accouting is unchanged.
diff-venet-netdev-tunbc-20051010
This patch fixes UBC accounting in tun.c in accordance with diff-ubc-flowcontrol-20051005
diff-ve-virtpid-sysctl-20050919
This patch adds sysctl to enable/disable pid virtualization on VPS start.
diff-mainstream-dethread-20051005
[PATCH] Fix fs/exec.c:788 (de_thread()) BUG_ON
It turns out that the BUG_ON() in fs/exec.c: de_thread() is unreliable and can trigger due to the test itself being racy. And actually there is no need for all threads to have exited at this point, so we simply kill the BUG_ON.
Signed-off-by: Alexander Nyberg <alexn@telia.com>
Cc: Roland McGrath <roland@redhat.com>
Cc: Andrew Morton <akpm@osdl.org>
Cc: Ingo Molnar <mingo@elte.hu>
Acked-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Chris Wright <chrisw@osdl.org>
diff-ve-percpu-lat-show-20051003
Adds necessary corrections into functions that show scheduling statistics to work with new per-cpu stats.
diff-ve-percpu-lat-sched-20051003
This patch makes schedule() use kstat_lat_pcpu_struct to store info about scheduling latencies. This makes possible to avoid taking kstat_glob_lock in schedule().
diff-ve-percpu-lat-20051003
Adds kstat_lat_pcpu_struct to account latencies per-cpu. It will be used in schedule() to avoid using kstat_glob_lock.
diff-fairsched-cyclescmp-20051007
This patch adds cycles CMP macros. Just small cleanup and avoids possible cycles wrap around (though unlikely to happen ever).
diff-ve-emt64-veprintk-20051003
Some calls of printk() can be triggered by userspace process. No need to spoil main logbuf.
diff-compat-dqaccess-20051005
This is part of diff-ve-devnum-20051005 changes.
diff-ve-devnum-20051005
This patch transfers bits 8..11 of unnamed device minor into major, using additional major numbers, which is currently enough for 1000 VEs. It is needed as a bandaid for coreutils (e.g., mknod) that still cannot use minor or major numbers >= 256; mknod on unnamed devices is used for support of second level quota inside VE.
diff-fairsched-lock-20051006
When CONFIG_FAIRSCHED is not set fairsched_lock is not present in kernel, but vcpu scheduler uses it to synchronize it's own stuff. Added spinlock with the same name nuder appropriate #ifdef having nothing better in mind.
diff-fairsched-shownode-20051006
This patch fixes show_vsched() to be compilable w/o fairsched support.
diff-ubc-ia64-ubalign-20051005
On IA64 reading ubc pointer from slab sometimes causes "unaligned access" exception.
UBC-in-slab pointers must be sizeof(void *)-aligned.
diff-fairsched-migrateall-20051007
This patch replaces std migrate_all_tasks() with own version for VCPU scheduler. It doesn't migrate any tasks now, just do sanity checks. It fixes compilation of IA64 kernel, since it used cpu_to_node() macro before...
diff-fairsched-cpulimit-fix-20051006
This patch fixes CPU limiting issues in fairsched due to:
- misprint in fairsched_delayed_insert()
- TSC deviation on different CPUs on test machines
Bug 51563.
Bug 50457.
diff-ubc-ia64-argpages-20051006
Same as in x86_64: need to charge arg pages set up for ia32 elf binary.
diff-ve-devperm-ve0quouta-20051003
This patch adds necessary permissions to default devperms for VE0 to make std quota tools work inside VE0.
diff-ve-devpermcod-20051003
This patch fixes kernel device representation (decoded device) passed to get_device_perms_ve() in sys_ustat().
diff-ve-fairsched-cpuhz-20051004
When CONFIG_FAIRSCHED is off vz_scale_khz is unresolved. Fixed.
diff-fairsched-compile-20051004
When CONFIG_FAIRSCHED is not set syscall sys_fairsched_rate() is not found.
diff-scsi-mpt-fusion-20050927
This patch fixes mpt fusion scsi driver stalling while booting. This patch should be applied in RPMs.
diff-sis900-20051014
Patch solves following problems:
- Forgotten counter incrementation in sis900_rx() in case it doesn't get memory for skb, that leads to whole interface failure. Problem is accompanied with messages:
eth0: Memory squeeze,deferring packet. eth0: NULL pointer encountered in Rx ring, skipping
- If counter cur_rx overflows and there'll be temporary memory problems buffer can't be recreated later, when memory IS avaliable.
- Limit the work in handler to prevent the endless packets processing if new packets are generated faster then handled.
In -mm tree: sis900-come-alive-after-temporary-memory-shortage.patch
Signed-off-by: Konstantin Khorenko <khorenko@sw.ru>
Signed-off-by: Vasily Averin <vvs@sw.ru>
Signed-off-by: Daniele Venzano <venza@brownhat.org>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
diff-ms-emt64-vsyscallpage-20051020
Use a real VMA to map the 32bit vsyscall page.
This fixes leaking of syscall32 page table entries.
This is a merge of two patches:
diff-ubc-debug-types-20051018
Since ub_pages_charged and ub_vmalloc_charged are per-cpu they can sometimes be negative. According type (long instead of unsigned int) is needed and appropriate struts in ubd_show() (print this info into proc file) function.
diff-ms-tcpstackusg-20050222
[TCP]: Fix excessive stack usage resulting in OOPS with 4KSTACKS.
Various routines were putting a full struct tcp_sock on the local stack. What they really wanted was a subset of this information when doing TCP options processing when we only have a mini-socket (for example in SYN-RECVD and TIME_WAIT states).
Therefore pull out the needed information into a sub-struct and use that in the TCP options processing routines.
Signed-off-by: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff-ve-legacyptys-20051018
added neccessary #ifdef for compilation with disabled CONFIG_LEGACY_PTYS
diff-ve-kconfig-deps-20051018
CONFIG_SECURITY and CONFIG_VE are excludable options, since LSMs may break VZ security model. So made it excludable in Kconfig.
diff-ubc-ia64-charges-20051014
This patch adds necessary charging of memory in loading elf binaries for both ia64 and ia32 emulation.
diff-vzdq-ia64-taskcurqmblk-20051017
On ia64 space right after struct thread_info is used to store registers. Quota overwrote these fields to store its own magic and inode pointer. Now theses values are stored right on task_struct in normal way.
diff-ms-iomem-20051020
Adds ioperm annotations required for new drivers.
diff-nthpage-ms-20051020
required kernel subsystems update for following libata and megaraid updates
Bug 52529.
Bug 52530.
diff-megaraid-20051020
megaraid driver is updated to 2.20 version
Bug 52530.
http://forum.openvz.org/index.php?t=rview&goto=246#msg_246
diff-libata-20051020
libata updated to 1.11 version
Bug 52529.
http://forum.openvz.org/index.php?t=rview&goto=256#msg_256
diff-ms-sx8-20040912
2004/09/12 10:30:42-07:00 torvalds@evo.osdl.org
Stricter PCI IO space type checking uncovered a bug in sx8 driver. Forgot to add in the mmio base..