bug-hurd
[Top][All Lists]
Advanced

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

Re: Fwd: Hurd shutdown problems


From: Brent W. Baccala
Subject: Re: Fwd: Hurd shutdown problems
Date: Thu, 11 Aug 2016 15:29:27 -1000

On Wed, Aug 10, 2016 at 4:33 AM, Richard Braun <rbraun@sceen.net> wrote:
On Wed, Aug 10, 2016 at 04:26:35PM +0200, Richard Braun wrote:
> the boot loader (see MULTIBOOT_FLAGS in boothdr.S), and at
> some point, late during the boot process, module data are freed
> using (see free_bootstrap_pages in bootstrap.c). This might

Using vm_page_manage().

--
Richard Braun

The symbol table is far enough away from the module data that I don't think it's getting freed at that point.

But it does seem to be freed.  Please check my calculations.

Here's the location of the symbol table in virtual memory.

(gdb) print self->start
$15 = (Elf32_Sym *) 0x804fb5ec

Here's its location in physical memory.

(gdb) print *symtab
$23 = {sh_name = 1, sh_type = 2, sh_flags = 0, sh_addr = 5223916, sh_offset = 5367452, sh_size = 70736, sh_link = 16,
  sh_info = 1663, sh_addralign = 4, sh_entsize = 16}

(gdb) printf "%x\n", 5223916
4fb5ec

Now, with the system fully booted, I find this address's page:

(gdb) print (5223916 - vm_page_segs[0].start)/4096
$44 = 1259

...and now start looking at the page table entries:

(gdb) print vm_page_segs[0].pages[1259].type
$52 = 0
(gdb) print vm_page_segs[0].pages[1260].type
$53 = 0
(gdb) print vm_page_segs[0].pages[1261].type
$54 = 0
(gdb) print vm_page_segs[0].pages[1262].type
$55 = 0

0 is VM_PT_FREE.  It should be VM_PT_RESERVED (1), right?

    agape
    brent


reply via email to

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