• Ilya Dryomov's avatar
    libceph: a per-osdc crush scratch buffer · 9d521470
    Ilya Dryomov authored
    With the addition of erasure coding support in the future, scratch
    variable-length array in crush_do_rule_ary() is going to grow to at
    least 200 bytes on average, on top of another 128 bytes consumed by
    rawosd/osd arrays in the call chain.  Replace it with a buffer inside
    struct osdmap and a mutex.  This shouldn't result in any contention,
    because all osd requests were already serialized by request_mutex at
    that point; the only unlocked caller was ceph_ioctl_get_dataloc().
    Signed-off-by: default avatarIlya Dryomov <ilya.dryomov@inktank.com>
    Reviewed-by: default avatarSage Weil <sage@inktank.com>
    9d521470
osdmap.c 29.6 KB