Re: grub.pxe, ARP-after-boot, DMA, and trouble

2012-04-11 Thread Daniel Kahn Gillmor
On Sat, 07 Apr 2012 01:36:44 -0400, Daniel Kahn Gillmor 
 wrote:
> In particular, i suspect that *after* the bootloader has turned over
> control to the kernel (memtest in this case), the PXE-driven NIC is
> continuing to DMA received packets into active RAM.

phcoder sent me the patch below to address the PXE DMA issue.

I tested it against the current bzr head.

My testing grub.cfg is just:

--
serial --speed=115200
terminal_input console serial
terminal_output console serial

linux16 (pxe)/memtest86+.bin console=ttyS0,115200n8
boot
--

Using grub bzr head without this patch, i get these RAM "failures" on
the net-booted ThinkCentre M70 within ~15 seconds on roughly every other
boot (i haven't found the right packets to inject to force the DMA to
happen consistently, alas).

Using grub bzr head with the patch, i have been unable to reproduce
a single RAM failures in more than 20 trials.

I think this patch resolves the issue, and should go into the mainline.

Thanks, phcoder!

--dkg

=== modified file 'grub-core/net/drivers/i386/pc/pxe.c'
--- grub-core/net/drivers/i386/pc/pxe.c	2012-02-08 18:26:01 +
+++ grub-core/net/drivers/i386/pc/pxe.c	2012-04-11 12:53:17 +
@@ -278,9 +278,14 @@
 grub_pxe_close (const struct grub_net_card *dev __attribute__ ((unused)))
 {
   if (pxe_rm_entry)
-grub_pxe_call (GRUB_PXENV_UNDI_CLOSE,
-		   (void *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR,
-		   pxe_rm_entry);
+{
+  grub_pxe_call (GRUB_PXENV_UNDI_CLOSE,
+		 (void *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR,
+		 pxe_rm_entry);
+  grub_pxe_call (GRUB_PXENV_UNDI_SHUTDOWN,
+		 (void *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR,
+		 pxe_rm_entry);
+}
 }
 
 static grub_err_t



pgplVUhF2vmVX.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: Improve support for genkernel in 10_linux

2012-04-11 Thread Mike Gilbert
2012/4/11 Vladimir 'φ-coder/phcoder' Serbinenko :
> On 11.04.2012 04:56, Mike Gilbert wrote:
>> On 04/07/2012 05:54 PM, Mike Gilbert wrote:
>>> Secondly, genkernel looks for the "real_root" kernel command line option
>>> to determine the root filesystem. This is a holdover from the days when
>>> we used true initrd images and we needed to use root=/dev/ram0.
>>>
>> It was brought to my attention that genkernel's initramfs code will in
>> fact utilize "root" if "real_root" is unset. This part of my previous
>> patch is therefore pointless.
>>
>> I have attached a revised patch containing only the changes necessary to
>> detect a genkernel initramfs image.
>>
> pushd/popd isn't POSIX so we can't use it in our scripts. Also I don't
> feel like glob expansion is the right thing to use here. Why not infer
> the architecture from uname ?

That should also work. Here's the logic that genkernel uses to populate ARCH:

ARCH=`uname -m`
case "${ARCH}" in
i?86)
ARCH="x86"
;;
mips|mips64)
ARCH="mips"
;;
arm*)
ARCH=arm
;;
*)
;;
esac

I'm thinking it would be a good idea to rename ARCH to something like
GENKERNEL_ARCH. We should also let the user override this in
/etc/default/grub.

Does that sound ok?

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: Improve support for genkernel in 10_linux

2012-04-11 Thread Vladimir 'φ-coder/phcoder' Serbinenko
On 11.04.2012 04:56, Mike Gilbert wrote:
> On 04/07/2012 05:54 PM, Mike Gilbert wrote:
>> Secondly, genkernel looks for the "real_root" kernel command line option
>> to determine the root filesystem. This is a holdover from the days when
>> we used true initrd images and we needed to use root=/dev/ram0.
>>
> It was brought to my attention that genkernel's initramfs code will in
> fact utilize "root" if "real_root" is unset. This part of my previous
> patch is therefore pointless.
>
> I have attached a revised patch containing only the changes necessary to
> detect a genkernel initramfs image.
>
pushd/popd isn't POSIX so we can't use it in our scripts. Also I don't
feel like glob expansion is the right thing to use here. Why not infer
the architecture from uname ?
>
>
> ___
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel


-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko




signature.asc
Description: OpenPGP digital signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel