On Thu, Jan 30, 2014 at 1:31 AM, Jean-Tiare LE BIGOT <jean-tiare.le-bigot@xxxxxxx> wrote: > Hi, > > I started to implement 'DISCARD' support in RBD kernel driver as described > on http://tracker.ceph.com/issues/190 > > This first (easy) step was to add at the end of > drivers/block/rbd.c:rbd_init_disk > > /* Advertise discard support for aligned blocks */ > queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q); > disk->queue->limits.discard_granularity = segment_size; > disk->queue->limits.discard_alignment = segment_size; > > With this both 'mount -o discard' and 'fstrim' stopped to complain about > missing 'DISCARD' support. Good ! > > Next step was to add support on `rbd_request_fn` which I did (sort of). But > here I'm stuck. If I understood well FS drivers uses `REQ_DISCARD` flag of > `rq->cmd_flags` to notify the driver of the discard operation. But the > problem is that (rq->cmd_flags & REQ_DISCARD) never appears to be set. > > I tried copying then removing large files, lots of small files, forcing > fstrim. But I never got it. I must be missing something obvious but I can't > manage to find what ? Do you have any clue what could be wrong ? I don't know anything about the relevant kernel internal interfaces here, but don't most FSes need to be told explicitly to do trimming? Did you do that? -Greg Software Engineer #42 @ http://inktank.com | http://ceph.com -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html