Re: [RESEND v4 7/7] mm, slab_common: Modify kmalloc_caches[type][idx] to kmalloc_caches[idx][type]

From: David Rientjes
Date: Sun Sep 15 2019 - 17:38:49 EST


On Mon, 16 Sep 2019, Pengfei Li wrote:

> KMALLOC_NORMAL is the most frequently accessed, and kmalloc_caches[]
> is initialized by different types of the same size.
>
> So modifying kmalloc_caches[type][idx] to kmalloc_caches[idx][type]
> will benefit performance.
>
> $ ./scripts/bloat-o-meter vmlinux.patch_1-6 vmlinux.patch_1-7
> add/remove: 0/0 grow/shrink: 2/57 up/down: 8/-457 (-449)
> Function old new delta
> tg3_self_test 4255 4259 +4
> nf_queue 666 670 +4
> kmalloc_slab 97 93 -4
> i915_sw_fence_await_dma_fence 441 437 -4
> __igmp_group_dropped 619 615 -4
> gss_import_sec_context 176 170 -6
> xhci_alloc_command 212 205 -7
> create_kmalloc_caches 155 148 -7
> xprt_switch_alloc 136 128 -8
> xhci_segment_alloc 297 289 -8
> xhci_ring_alloc 369 361 -8
> xhci_mem_init 3664 3656 -8
> xhci_alloc_virt_device 496 488 -8
> xhci_alloc_tt_info 346 338 -8
> xhci_alloc_stream_info 718 710 -8
> xhci_alloc_container_ctx 215 207 -8
> xfrm_policy_alloc 271 263 -8
> tcp_sendmsg_locked 3120 3112 -8
> tcp_md5_do_add 774 766 -8
> tcp_fastopen_defer_connect 270 262 -8
> sr_read_tochdr.isra 251 243 -8
> sr_read_tocentry.isra 328 320 -8
> sr_is_xa 376 368 -8
> sr_get_mcn 260 252 -8
> selinux_sk_alloc_security 113 105 -8
> sdev_evt_send_simple 118 110 -8
> sdev_evt_alloc 79 71 -8
> scsi_probe_and_add_lun 2938 2930 -8
> sbitmap_queue_init_node 418 410 -8
> ring_buffer_read_prepare 94 86 -8
> request_firmware_nowait 396 388 -8
> regulatory_hint_found_beacon 394 386 -8
> ohci_urb_enqueue 3176 3168 -8
> nla_strdup 142 134 -8
> nfs_alloc_seqid 87 79 -8
> nfs4_get_state_owner 1040 1032 -8
> nfs4_do_close 578 570 -8
> nf_ct_tmpl_alloc 85 77 -8
> mempool_create_node 164 156 -8
> ip_setup_cork 362 354 -8
> ip6_setup_cork 1021 1013 -8
> gss_create_cred 140 132 -8
> drm_flip_work_allocate_task 70 62 -8
> dma_pool_alloc 410 402 -8
> devres_open_group 214 206 -8
> cfg80211_stop_iface 260 252 -8
> cfg80211_sinfo_alloc_tid_stats 77 69 -8
> cfg80211_port_authorized 212 204 -8
> cfg80211_parse_mbssid_data 2397 2389 -8
> cfg80211_ibss_joined 335 327 -8
> call_usermodehelper_setup 149 141 -8
> bpf_prog_alloc_no_stats 182 174 -8
> blk_alloc_flush_queue 191 183 -8
> bdi_alloc_node 195 187 -8
> audit_log_d_path 196 188 -8
> _netlbl_catmap_getnode 247 239 -8
> ____ip_mc_inc_group 475 467 -8
> __i915_sw_fence_await_sw_fence 417 405 -12
> ida_alloc_range 955 934 -21
> Total: Before=14874316, After=14873867, chg -0.00%
>
> Signed-off-by: Pengfei Li <lpf.vector@xxxxxxxxx>

This also seems more intuitive.

Acked-by: David Rientjes <rientjes@xxxxxxxxxx>