Re: Queries on IA -64

From: Mohit Katiyar <mohit_lkw_at_yahoo.com>
Date: 2005-05-18 15:18:13
Hi everyone
A big thanks to all who cleared my doubts .It was a
great help 
Thanks once again

Mohit Katiyar
--- Bjorn Helgaas <bjorn.helgaas@hp.com> wrote:
> On Monday 16 May 2005 5:49 am, Mohit Katiyar wrote:
> > I am having a ZX MIO chip
> 
> I assume you mean an HP box with zx1 chipset.
> 
> > First in function paging_init 
> > line    max_dma = virt_to_phys((void *)
> > MAX_DMA_ADDRESS) >> PAGE_SHIFT;
> > max_dma comes out to be 0x7fffffffffff and max low
> pfn
> > = 0x103ffec
> > Therefore all the pages move into DMA zone during
> > initialization .
> > QUESTION Why do we have such a large max_dma
> value.
> > What is the use for that?
> 
> As Grant said, ia64 provides the illusion that any
> device
> can DMA directly to any physical memory.  For
> devices that
> can't do 64-bit DMA directly, HP and SGI chipsets
> have
> hardware I/O TLBs that turn a 32-bit PCI bus address
> into
> a 64-bit memory address.  For boxes without a
> hardware
> I/O TLB, there's a software I/O TLB that provides
> similar
> functionality using bounce buffers.
> 
> > Question In which case does trim bottom is called
> and
> > in which case trim top will be called??
> 
> The identity-mapped kernel segment is mapped with
> large
> pages (typically 16MB or 64MB).  The ia64
> architecture
> requires that we prevent attribute aliasing, so we
> can't
> have one of those pages that contains both WB and UC
> memory.  So trim_top() and trim_bottom() trim the
> memory
> map so we ignore chunks that contain anything other
> than
> WB memory.
> 
> > May 13 16:57:01 HORIZON kernel: range =
> > [0x0000000000000000-0x0000000000001000] (0MB)
> > 
> > QUESTION>>>>>>>>Why does count_dma_pages skips
> this
> > range as seen from start and end values indicated
> at
> > the end of mail
> 
> This is removed because it's in the same 16MB
> granule
> as the 0xa0000-0xc0000 VGA frame buffer region,
> which
> is MMIO.  That MMIO region forces us to ignore any
> WB memory in the first 16MB.
> 
> > May 13 16:57:02 HORIZON kernel: type =
> MemoryMappedIO 
> > May 13 16:57:02 HORIZON kernel: attribute = 0x3 
> > May 13 16:57:02 HORIZON kernel: range =
> > [0x00000000000a0000-0x00000000000c0000] (0MB)
> 
> > If i compile my kernel with Virtual mem map off
> and
> > NUMA off i my available free ram decreases by
> about 1
> > GB . I am not able to figure it out??
> 
> My guess is that without virtual memmap, you just
> end
> up wasting a huge amount of memory on page
> structures.
> The zx1 chipset has huge holes in the physical
> memory
> map, and I think that without virtual memmap, we
> allocate
> page structures even for the holes.
> 
> This book is a great place to start for questions
> like
> these:
> 
>     http://www.lia64.org/book/
> 


		
__________________________________ 
Do you Yahoo!? 
Make Yahoo! your home page 
http://www.yahoo.com/r/hs
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Wed May 18 01:19:57 2005

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:39 EST