bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Multiple initrd files.


From: OKUJI Yoshinori
Subject: Re: [PATCH] Multiple initrd files.
Date: Sun, 28 Jan 2001 19:45:08 +0900

From: Dave Cinege <address@hidden>
Subject: Re: [PATCH] Multiple initrd files.
Date: Sun, 28 Jan 2001 04:42:50 -0500

> I'm loading files right inline (effectively cat'ing them together in memory),
> so its not possible to calculate the total image size until
> they are all loaded. From what I could tell this creates an offset problem, as
> the first file could be 10K and the next file could be 2MB. (And a 10K file is
> placed differently then a 2.01MB one, no?) This is why I said I thought it had
> to be rewritten since I didn't think any of the lower part of initrd_load()
> could take place until grub_read() read it all.(???)

Maybe you are not very familiar with event-driven programming
model. Your implementation is based on batch processing model, which
knows what _will_ be loaded and how to schedule them. Unlike yours, my
patch is based on a state machine, which knows what was loaded and
what is being loaded, but doesn't know what will be loaded.

In load_initrd, an image is first loaded into a temporary memory area
(i.e. CUR_ADDR), and moved to another area afterwards. So my strategy
was:

1. Read an image to a temporary area.
2. Move a previous image(s), to allocate the size of the image
   currently loaded after the previous image(s).
3. Move current image to the allocated area.

1. (C = current image, P = previously loaded image(s))
+--------~------+
|CCC          PP|
+--------~------+

2.
+--------~------+
|CCC       PP PP|
+--------~------+

3.
+--------~------+
|CCC       PPCCC|
+--------~------+

> This works fine with my patch. Would your's be ok?

I don't know. It is impossible to test new code just in three
minutes. ;)

Okuji



reply via email to

[Prev in Thread] Current Thread [Next in Thread]