On Fri, Nov 4, 2022 at 8:31 AM TGSP <tgsp002@xxxxxxxxx> wrote: > > 在 2022/11/4 00:25, Rafael J. Wysocki 写道: > > On Tue, Nov 1, 2022 at 3:28 AM TGSP <tgsp002@xxxxxxxxx> wrote: > >> > >> From: xiongxin <xiongxin@xxxxxxxxxx> > >> > >> The actual calculation formula in the code below is: > >> > >> max_size = (count - (size + PAGES_FOR_IO)) / 2 > >> - 2 * DIV_ROUND_UP(reserved_size, PAGE_SIZE); > >> > >> But function comments are written differently, the comment is wrong? > > > > It is, and it is more serious than just a spelling mistake. > > > >> By the way, what exactly do the "/ 2" and "2 *" mean? > > > > Every page in the image is a copy of an existing allocated page, so > > room needs to be made for the two, except for the "IO pages" and > > metadata pages that are not copied. Hence, the division by 2. > > > > Now, the "reserved_size" pages will be allocated right before creating > > the image and there will be a copy of each of them in the image, so > > there needs to be room for twice as many. > > According to your interpretation, the formula should be: > max_size = (count - 2 * DIV_ROUND_UP(reserved_size, PAGE_SIZE) > - (size + PAGES_FOR_IO)) / 2 > > Am I right? No, you aren't. The formula is fine. I've attempted to explain it to you, but perhaps it's not been clear enough, sorry about that.