Re: Squid Upgrade

From: Dancer <dancer@dont-contact.us>
Date: Sat, 11 Apr 1998 12:10:08 +1000

Fraser Campbell wrote:
>
> I am upgrading our squid cache from 750 MB to about 6 GB. Currently I
> am using 1.1.17 are there any compelling reasons to upgrade to 1.1.20?
> Should I consider the NOVM version? Anyone know some gotchas I might
> be overlooking? Running on Linux 2.0.33, 64 MB of system RAM, will
> probably upgrade to 96 MB of RAM.

You might want to make that 128MB of RAM, actually. Even if you do,
consider the NOVM version for 6GB cache. That's the setup we're
currently using. Admittedly, I patched the kernel to allow more
filedescriptors. It doesn't take the users long to burn 256, even in the
non-NOVM version.

If you are using linux-2.0.33, there's an interesting bit of news. A
memory corruption bug was introduced accidentally in that kernel
version. A patch became available just this week, when it was located.
It bites you when you run out of RAM.

Here's the patch (with thanks to Andreas Arcangeli):

--- linux/mm/vmalloc.c 1998/04/04 11:27:22 1.1
+++ linux/mm/vmalloc.c 1998/04/04 11:27:32
@@ -143,10 +143,8 @@
                pte_t * pte = pte_alloc_kernel(pmd, address);
                if (!pte)
                        return -ENOMEM;
- if (alloc_area_pte(pte, address, end - address)) {
- pte_free_kernel(pte);
+ if (alloc_area_pte(pte, address, end - address))
                        return -ENOMEM;
- }
                address = (address + PMD_SIZE) & PMD_MASK;
                pmd++;
        }
@@ -164,10 +162,8 @@
                pmd_t *pmd = pmd_alloc_kernel(dir, address);
                if (!pmd)
                        return -ENOMEM;
- if (alloc_area_pmd(pmd, address, end - address)) {
- pmd_free_kernel(pmd);
+ if (alloc_area_pmd(pmd, address, end - address))
                        return -ENOMEM;
- }
                set_pgdir(address, *dir);
                address = (address + PGDIR_SIZE) & PGDIR_MASK;
                dir++;
@@ -228,10 +224,8 @@
                pmd_t *pmd = pmd_alloc_kernel(dir, address);
                if (!pmd)
                        return -ENOMEM;
- if (remap_area_pmd(pmd, address, end - address, offset +
address)) {
- pmd_free_kernel(pmd);
+ if (remap_area_pmd(pmd, address, end - address, offset +
address))
                        return -ENOMEM;
- }
                set_pgdir(address, *dir);
                address = (address + PGDIR_SIZE) & PGDIR_MASK;
                dir++;
Received on Fri Apr 10 1998 - 19:17:59 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:39:39 MST