Re: Current break round up

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

 



Hi Frank,

Thanks. I think, I understand. But, It is a question yet, it is a bug
or by design, that sys_brk doesn't round up current break to page
boundary. I'll try and inspect how sys_mmap works.

Thanks for your suggestion.

regards,
Tibor

On Wed, Oct 1, 2008 at 10:27 PM, Frank Kotler <fbkotler@xxxxxxxxxxx> wrote:
> Kircsi Tibor wrote:
>>
>> Hi,
>>
>> I may have misunderstood what you wrote, but I took a probe: (debugged
>> with cgdb)
>>
>> .include "../sharedlibs/linux.s"
>>
>> .section .text
>>        .globl  _start
>> _start:
>>        movl    %esp, %ebp
>>
>>        # 1st brk call
>>        movl    $0, %ebx                # %ebx = 0, get the current
>> curret_break
>>        movl    $SYS_BRK, %eax
>>        int     $INT                    # %eax = address of
>> current_break
>>
>>        # 2nd brk call
>>        addl    $0x1002, %eax           # add 4098 to current
>> current_break
>>        movl    %eax, %ebx              # %ebx = the address of the new
>> current_break
>>        movl    $SYS_BRK, %eax
>>        int     $INT
>>
>>        # 3rd brk call
>>        movl    $0, %ebx
>>        movl    $SYS_BRK, %eax
>>        int     $INT
>>
>>        # 4th brk call
>>        movl    $SYS_BRK, %eax
>>        int     $INT
>>
>>        # 5th brk call
>>        movl    $SYS_BRK, %eax
>>        int     $INT
>>
>>        # sys_exit
>>        movl    $0, %ebx                # set the return value of the
>> program
>>        movl    $SYS_EXIT, %eax
>>        int     $INT
>>
>> addresses:
>> 1st - 0x8049000 it's OK, because linux loads programs into the 0x8048000
>> virtual address space, so this is the first page
>> 2nd - 0x804a002 not aligned to 0x804b000
>> 3rd - 0x804a002 same
>> 4th - same
>> 5th - same
>>
>> That's ok, after the 2nd brk I just always ask for the current break
>> with %ebx = 0. So, it seems unaligned return after the 4th call too.
>
> Hi Tibor,
> (sorry I called you "Kircsi")
> I didn't mean that sys_brk aligned itself "automatically" by repeated calls.
> I ASSume that, unseen in the "strace" output, %ebx is being aligned "by
> hand" to a page boundary before that last sys_brk.
>
>>> Randall Hyde wrote:
>
> BTW, Randy, I ASSumed that you intended to reply to the list. Ya gotta hit
> "reply all" or it goes just to the sender...
>
> I don't disagree that sys_mmap (or sys_mmap2?) is a better bet for
> allocating memory, but it isn't much use for "exploring" sys_brk...
>
> Best,
> Frank
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies]     [Security]     [Linux C Programming]     [Linux for Hams]     [DCCP]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux