• I
    libceph: a per-osdc crush scratch buffer · 9d521470
    Ilya Dryomov 提交于
    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: NIlya Dryomov <ilya.dryomov@inktank.com>
    Reviewed-by: NSage Weil <sage@inktank.com>
    9d521470
osdmap.c 29.6 KB