Fog_Watch wrote: > When CONFIG_NOHIGHMEM=y, boot proceeds without error. That is, grub > finishes, I am prompted for a loop-AES password and boot starts. > When CONFIG_HIGHMEM4G=y, grub finishes, the ramdisk cycles through as > though I had repeatedly entered in the incorrect password and finishes > with "System halted." The most salient error listed is: > "ioctl: LOOP_SET_FD: Cannot allocate memory". > > On this 2GB machine I can boot a Knoppix, for example, CD which has > CONFIG_HIGHMEM4G=y. losetup can then be used without error. When > booting from disk though I get this kooky "Cannot allocate memory" > error. Any ideas why? In loop-AES versions earlier than loop-AES-v3.2f, hardcoded maximum value for "lo_prealloc" parameter was 512 RAM pages. In loop-AES-v3.2f it is 4096 RAM pages. This limit is enforced silently. As in, if larger value is used, then hardcoded maximum value is used instead without error messages. Preallocation of RAM is done at "losetup ioctl: LOOP_SET_FD" time. In your case this sounds as if some non-default value for "lo_prealloc" is the cause. Highmem RAM handling can be deadlocky in some cases. Loop code does the preallocation from non-highmem RAM (which is sort of sin) to avoid deadlocks. In highmem kernels, the non-highmem RAM pages are often scarce resource. Previous "lo_prealloc" limit was on the safe side. New limit allows better performance, but it can also lead to "Cannot allocate memory" errors at losetup time if too big "lo_prealloc" values are used. -- Jari Ruusu 1024R/3A220F51 5B 4B F9 BB D3 3F 52 E9 DB 1D EB E3 24 0E A9 DD - Linux-crypto: cryptography in and on the Linux system Archive: http://mail.nl.linux.org/linux-crypto/