On Fri, Mar 07, 2014 at 11:52:04PM +0800, WANG Chao wrote: > Hi, Vivek > > On 03/07/14 at 09:14am, Vivek Goyal wrote: > > On Fri, Mar 07, 2014 at 04:10:16PM +0800, WANG Chao wrote: > > > > [..] > > > } > > > > > > - specified_table_size = determine_tce_table_size((is_kdump_kernel() ? > > > - saved_max_pfn : max_pfn) * PAGE_SIZE); > > > + specified_table_size = determine_tce_table_size(); > > > > I don't think you can get rid of saved_max_pfn right away. What if > > somebody is using old first kernel and new second kernel. Then old kernel > > will still be using a table size which is smaller than 8M. > > If TCE table size is hard coded to 8M, the new 1st kernel can never be > compatible with the old 2nd kernel. I gave example of old first kernel and new second kernel, and not vice-versa. So we have two scenarios. - Old first kernel and new second kernel. - New first kernel and old second kernel. If we want to make these two scenarios work with calgary, we need to use kexec-tools with --pass-memmap option. And also in new kernel we need to retain saved_max_pfn. Only difference will be, that we will set saved_max_pfn only if it is kdump kernel and if user passed a memory map on kernel command line. So it is doable if it want to do it. Now the real question is, is it worth introducing all this complication and confusion given the fact most of the people use same first and second kernel and given the fact that calgary is old hardware. What are the chances somebody will run into it. I would say it is not very complicated to maintain backward compatibility in this case. So let us keep saved_max_pfn for some time and make kexec-tools changes. Some time down the line, one can get rid of saved_max_pfn completely. Thanks Vivek