base1 = 0xA4D000; size1=0x1000;
memblock_reserve (base1, size1);

(In a separate static driver code)
request_mem_region_exclusive (0x00A4D000, 4096, "csSIGILL")

If a driver requests for a memory region, shouldn't the kernel then not
allocate it for any other purpose?

-Regards
Nikhil

On Wed, Sep 28, 2016 at 3:12 PM, Arun Sudhilal <getaru...@gmail.com> wrote:

> Hello Nikhil,
>
> On Wed, Sep 28, 2016 at 2:41 PM, Nikhil Utane
> <nikhil.subscri...@gmail.com> wrote:
> > Arun,
> >
> > What seems to have done the trick is calling memblock_remove() followed
> by a
> > call to request_mem_region(). This creates a hole which can be confirmed
> in
> > the output of /proc/iomem.
> >
> > Do you see any issue with this approach?
>
> I really don't know how it works for you. Marking address of a page as
> iomem.  How buddy allocator ignores this page?
> request_mem_region() is a way of managing IO resource memory, to avoid
> two drivers using same IO memory. It has not relation with buddy
> allocator.
>
> Can you post code snippet?
>
> Regards,
> Arun
>
> >
> > -Thanks
> > Nikhil
> >
> > On Tue, Sep 27, 2016 at 4:14 PM, Arun Sudhilal <getaru...@gmail.com>
> wrote:
> >>
> >> Hello Nikhil,
> >>
> >> On Fri, Sep 9, 2016 at 7:01 AM, Nikhil Utane
> >> <nikhil.subscri...@gmail.com> wrote:
> >> > I want to reserve a physical memory page with a fixed PFN. I do not
> want
> >> > this page to be used by anyone else. I am calling memblock_reserve()
> to
> >> > supposedly reserve the page. I am writing some content into this page.
> >> > What
> >> > I see is that during some runs the content of this page is modified
> >> > (either
> >> > fully or sometimes partially). In few runs, I see it as intact. Is it
> >> > expected that even after calling memblock_reserve() the kernel can
> >> > allocate
> >> > this physical page for any other purpose? How is memblock_remove()
> >> > different
> >> > from memblock_reserve? I tried reading up but didn't see any useful
> >> > information. What I understood is memblock_remove will completely
> remove
> >> > from kernel's allocation mechanism. Should I then be using remove
> >> > instead of
> >> > reserve?
> >>
> >> when a DT entry is added to  #reserved-memory node, what
> >> drivers/of/fdt.c does is to call memblock_remove() and
> >> memblock_reserve().
> >> This happens after the memblock driver is initialized but before buddy
> >> allocator up. Did you try this approach? This should work for you.
> >>
> >> Only option once the kernel boot is complete is to try out the
> >> technique what mm/memory_hotplug.c does while offline memory.
> >> isolate_page_range and then migrate.
> >>
> >> Regards,
> >> Arun
> >>
> >>
> >> >
> >> > -Thanks
> >> > Nikhil
> >> >
> >> > _______________________________________________
> >> > Kernelnewbies mailing list
> >> > Kernelnewbies@kernelnewbies.org
> >> > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >> >
> >
> >
>
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to