Messages in this thread | | | Date | Tue, 11 Mar 2008 09:29:21 -0400 | From | Vivek Goyal <> | Subject | Re: [RFC] [Patch] calgary iommu: Use the first kernel's tce tables in kdump |
| |
On Mon, Mar 10, 2008 at 06:50:29PM +0530, Chandru wrote:
[..] > - specified_table_size = determine_tce_table_size(end_pfn * > PAGE_SIZE); > + max_pfn = is_kdump_kernel() ? saved_max_pfn : end_pfn ; > + specified_table_size = determine_tce_table_size(max_pfn * > PAGE_SIZE); > > for (bus = 0; bus < MAX_PHB_BUS_NUM; bus++) { > struct calgary_bus_info *info = &bus_info[bus]; > @@ -1411,10 +1480,16 @@ void __init detect_calgary(void) > > if (calgary_bus_has_devices(bus, pci_device) || > translate_empty_slots) { > - tbl = alloc_tce_table(); > - if (!tbl) > - goto cleanup; > - info->tce_space = tbl; > + /* > + * If this is a kdump kernel find and use > + * the tce tables from first kernel > + */ > + if (!is_kdump_kernel()) { > + tbl = alloc_tce_table(); > + if (!tbl) > + goto cleanup; > + info->tce_space = tbl; > + }
Hi Chandru,
- How do we make sure that previous kernel's TCE tables are not overwritten by new kernel (In case previous kernel allocated TCE tables in first 640 KB?)
- How do we make sure that when new kernel tries to setup an entry in TCE table, then it does not try to clear up an existing entry which is still in use?
Did you try the Muli suggestion of ignoring DMA error in exception handler? What happens if I setup new table and try to switch to new table? Some sort of error will occur. Can't we modify the handler and ignore it for kdump case and move on?
Thanks Vivek
| |