[RFC] arm: add __initbss section attribute

yalin wang yalin.wang2010 at gmail.com
Tue Oct 13 02:51:32 PDT 2015


> On Oct 13, 2015, at 17:40, Arnd Bergmann <arnd at arndb.de> wrote:
> 
> On Tuesday 13 October 2015 15:33:10 yalin wang wrote:
>> 
>>> On Oct 13, 2015, at 04:04, Sam Ravnborg <sam at ravnborg.org> wrote:
>>> 
>>>> --- a/include/asm-generic/vmlinux.lds.h
>>>> +++ b/include/asm-generic/vmlinux.lds.h
>>>> 
>>>> -#define BSS_SECTION(sbss_align, bss_align, stop_align)			\
>>>> +#define BSS_SECTION(sbss_align, bss_align, initbss_align, stop_align)			\
>>> 
>>> A few comments:
>>> 
>>> 1) - please align the backslash at the end of the
>>>    line with the backslash above it.
>>> 2) - you need to fix all the remaining users of BSS_SECTION.
>>> 3) - do we really need the flexibility to specify an alignment (stop_align)?
>>>       If not - drop the extra argument.
>>> 
>>> 	Sam
>> i change lots of __initdata to __initbss to test it on ARM arch,
>> 
> 
> Ok, I found my mistake in the script I used to calculate the savings,
> here is the correct output showing all uninitialized variables in
> multi_v7_defconfig:
> 
> 4	done.44688
> 1024	boot_command_line
> 1024	tmp_cmdline.44689
> 4	late_time_init
> 4	root_mount_data
> 4	root_fs_names
> 4	rd_doload
> 4	root_delay
> 64	saved_root_name
> 4	root_device_name
> 4	message
> 4	byte_count
> 4	victim
> 4	collected
> 8	this_header
> 4	state
> 4	collect
> 4	remains
> 4	next_state
> 8	header_buf
> 8	next_header
> 4	do_retain_initrd
> 4	name_len
> 4	body_len
> 4	gid
> 4	uid
> 4	mtime
> 4	wfd
> 4	vcollected
> 4	ino
> 4	mode
> 4	nlink
> 4	major
> 4	minor
> 4	rdev
> 4	symlink_buf
> 4	name_buf
> 64	msg_buf.29770
> 128	head
> 4	machine_desc
> 4	usermem.34390
> 4	__atags_pointer
> 1024	cmd_line
> 1024	default_command_line
> 1536	atags_copy
> 4	dma_mmu_remap_num
> 64	dma_mmu_remap
> 4	phys_initrd_start
> 4024	phys_initrd_size
> 4096	bm_pte
> 4	ecc_mask
> 4	initial_pmd_value
> 4	arm_lowmem_limit
> 24	s5p_mfc_mem
> 28	tx_pad_name
> 4	use_gptimer_clksrc
> 4	omap_table_init
> 4	mpurate
> 4	am35xx_aes_hwmod_ocp_ifs
> 4	am35xx_sham_hwmod_ocp_ifs
> 4	dra72x_hwmod_ocp_ifs
> 4	rx51_vibra_data
> 4	num_special_pds
> 128	special_pds
> 4	main_extable_sort_needed
> 4	new_log_buf_len
> 24	opts.36513
> 512	smap.22469
> 512	dmap.22470
> 64	group_map.22521
> 64	group_cnt.22522
> 4	pcpu_chosen_fc
> 4	vmlist
> 4	vm_init_off.26867
> 4	reset_managed_pages_done
> 116	boot_kmem_cache_node.32827
> 116	boot_kmem_cache.32826
> 4	dhash_entries
> 4	ihash_entries
> 4	mhash_entries
> 4	mphash_entries
> 256	nfs_root_parms
> 1028	nfs_export_path
> 1028	nfs_root_device
> 4	gic_cnt
> 4	threshold_index
> 4096	ata_force_param_buf
> 4	mtd_devs
> 2432	mtd_dev_param
> 8	m68k_probes
> 8	isa_probes
> 4	arch_timers_present
> 4	dt_root_size_cells
> 4	dt_root_addr_cells
> 4	imx_keep_uart_clocks
> 4	imx_uart_clocks
> 4	mt8173_top_clk_data
> 4	mt8173_pll_clk_data
> 4	cpg_mode
> 4	cpg_mode_rates
> 4	cpg_mode_divs
> 4	cpg_mode
> 4	cpg_mode
> 4	thash_entries
> 4	uhash_entries
> 4	ic_got_reply
> 4	ic_first_dev
> 4	ic_dev
> 16	user_dev_name
> 4	ic_dhcp_msgtype
> 4	ic_host_name_set
> 4	ic_dev_mtu
> 4	ic_set_manually
> 4	ic_enable
> 256	vendor_class_identifier
> 4	ic_proto_have_if
> 4	dma_reserve
> 4	nr_kernel_pages
> 4	nr_all_pages
> 196	__clk_of_table_sentinel
> 200	__rmem_of_table_sentinel
> 196	__clksrc_of_table_sentinel
> 200	__iommu_of_table_sentinel
> 8	__cpu_method_of_table_sentinel
> 8	__cpuidle_method_of_table_sentinel
> 196	irqchip_of_match_end
> 32	__earlycon_table_sentinel
> 200	__earlycon_of_table_sentinel
> 6	__irf_end
> 
> 
> 26398 total
i am curious about your scripts ,
could you show me ?
Thank you !







More information about the linux-arm-kernel mailing list