1. 23 3月, 2010 2 次提交
  2. 05 3月, 2010 1 次提交
    • Y
      ceph: reset osd after relevant messages timed out · 422d2cb8
      Yehuda Sadeh 提交于
      This simplifies the process of timing out messages. We
      keep lru of current messages that are in flight. If a
      timeout has passed, we reset the osd connection, so that
      messages will be retransmitted.  This is a failsafe in case
      we hit some sort of problem sending out message to the OSD.
      Normally, we'll get notification via an updated osdmap if
      there are problems.
      
      If a request is older than the keepalive timeout, send a
      keepalive to ensure we detect any breaks in the TCP connection.
      Signed-off-by: NYehuda Sadeh <yehuda@hq.newdream.net>
      Signed-off-by: NSage Weil <sage@newdream.net>
      422d2cb8
  3. 02 3月, 2010 2 次提交
  4. 27 2月, 2010 1 次提交
    • S
      ceph: remove fragile __map_osds optimization · c99eb1c7
      Sage Weil 提交于
      We used to try to avoid freeing and then reallocating the osd
      struct.  This is a bit fragile due to potential interactions with
      other references (beyond o_requests), and may be the cause of
      this crash:
      
      [120633.442358] BUG: unable to handle kernel NULL pointer dereference at (null)
      [120633.443292] IP: [<ffffffff812549b6>] rb_erase+0x11d/0x277
      [120633.443292] PGD f7ff3067 PUD f7f53067 PMD 0
      [120633.443292] Oops: 0000 [#1] PREEMPT SMP
      [120633.443292] last sysfs file: /sys/kernel/uevent_seqnum
      [120633.443292] CPU 1
      [120633.443292] Modules linked in: ceph fan ac battery psmouse ehci_hcd ide_pci_generic ohci_hcd thermal processor button
      [120633.443292] Pid: 3023, comm: ceph-msgr/1 Not tainted 2.6.32-rc2 #12 H8SSL
      [120633.443292] RIP: 0010:[<ffffffff812549b6>]  [<ffffffff812549b6>] rb_erase+0x11d/0x277
      [120633.443292] RSP: 0018:ffff8800f7b13a50  EFLAGS: 00010246
      [120633.443292] RAX: ffff880022907819 RBX: ffff880022907818 RCX: 0000000000000000
      [120633.443292] RDX: ffff8800f7b13a80 RSI: ffff8800f587eb48 RDI: 0000000000000000
      [120633.443292] RBP: ffff8800f7b13a60 R08: 0000000000000000 R09: 0000000000000004
      [120633.443292] R10: 0000000000000000 R11: ffff8800c4441000 R12: ffff8800f587eb48
      [120633.443292] R13: ffff8800f58eaa00 R14: ffff8800f413c000 R15: 0000000000000001
      [120633.443292] FS:  00007fbef6e226e0(0000) GS:ffff880009200000(0000) knlGS:0000000000000000
      [120633.443292] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      [120633.443292] CR2: 0000000000000000 CR3: 00000000f7c53000 CR4: 00000000000006e0
      [120633.443292] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [120633.443292] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [120633.443292] Process ceph-msgr/1 (pid: 3023, threadinfo ffff8800f7b12000, task ffff8800f5858b40)
      [120633.443292] Stack:
      [120633.443292]  ffff8800f413c000 ffff8800f587e9c0 ffff8800f7b13a80 ffffffffa0098a86
      [120633.443292] <0> 00000000000006f1 0000000000000000 ffff8800f7b13af0 ffffffffa009959b
      [120633.443292] <0> ffff8800f413c000 ffff880022a68400 ffff880022a68400 ffff8800f587e9c0
      [120633.443292] Call Trace:
      [120633.443292]  [<ffffffffa0098a86>] __remove_osd+0x4d/0xbc [ceph]
      [120633.443292]  [<ffffffffa009959b>] __map_osds+0x199/0x4fa [ceph]
      [120633.443292]  [<ffffffffa00999f4>] ? __send_request+0xf8/0x186 [ceph]
      [120633.443292]  [<ffffffffa0099beb>] kick_requests+0x169/0x3cb [ceph]
      [120633.443292]  [<ffffffffa009a8c1>] ceph_osdc_handle_map+0x370/0x522 [ceph]
      
      Since we're probably screwed anyway if a small kmalloc is
      failing, don't bother with trying to be clever here.
      Signed-off-by: NSage Weil <sage@newdream.net>
      c99eb1c7
  5. 24 2月, 2010 1 次提交
  6. 16 2月, 2010 1 次提交
  7. 12 2月, 2010 1 次提交
  8. 11 2月, 2010 1 次提交
  9. 03 2月, 2010 1 次提交
  10. 26 1月, 2010 3 次提交
  11. 15 1月, 2010 2 次提交
  12. 24 12月, 2009 3 次提交
    • S
      ceph: include transaction id in ceph_msg_header (protocol change) · 6df058c0
      Sage Weil 提交于
      Many (most?) message types include a transaction id.  By including it in
      the fixed size header, we always have it available even when we are unable
      to allocate memory for the (larger, variable sized) message body.  This
      will allow us to error out the appropriate request instead of (silently)
      dropping the reply.
      Signed-off-by: NSage Weil <sage@newdream.net>
      6df058c0
    • S
      ceph: control access to page vector for incoming data · 350b1c32
      Sage Weil 提交于
      When we issue an OSD read, we specify a vector of pages that the data is to
      be read into.  The request may be sent multiple times, to multiple OSDs, if
      the osdmap changes, which means we can get more than one reply.
      
      Only read data into the page vector if the reply is coming from the
      OSD we last sent the request to.  Keep track of which connection is using
      the vector by taking a reference.  If another connection was already
      using the vector before and a new reply comes in on the right connection,
      revoke the pages from the other connection.
      Signed-off-by: NSage Weil <sage@newdream.net>
      350b1c32
    • S
      ceph: unregister canceled/timed out osd requests · 529cfcc4
      Sage Weil 提交于
      Canceled or timed out osd requests were getting left in the request list
      and never deallocated (until umount).  Unregister if they are canceled
      (control-c) or time out.
      Signed-off-by: NSage Weil <sage@newdream.net>
      529cfcc4
  13. 22 12月, 2009 3 次提交
  14. 08 12月, 2009 1 次提交
  15. 04 12月, 2009 1 次提交
  16. 02 12月, 2009 1 次提交
  17. 22 11月, 2009 1 次提交
  18. 21 11月, 2009 1 次提交
    • S
      ceph: fix debugfs entry, simplify fsid checks · 0743304d
      Sage Weil 提交于
      We may first learn our fsid from any of the mon, osd, or mds maps
      (whichever the monitor sends first).  Consolidate checks in a single
      helper.  Initialize the client debugfs entry then, since we need the
      fsid (and global_id) for the directory name.
      
      Also remove dead mount code.
      Signed-off-by: NSage Weil <sage@newdream.net>
      0743304d
  19. 19 11月, 2009 3 次提交
  20. 05 11月, 2009 1 次提交
  21. 28 10月, 2009 1 次提交
  22. 16 10月, 2009 1 次提交
  23. 15 10月, 2009 1 次提交
  24. 10 10月, 2009 4 次提交
  25. 07 10月, 2009 1 次提交
    • S
      ceph: OSD client · f24e9980
      Sage Weil 提交于
      The OSD client is responsible for reading and writing data from/to the
      object storage pool.  This includes determining where objects are
      stored in the cluster, and ensuring that requests are retried or
      redirected in the event of a node failure or data migration.
      
      If an OSD does not respond before a timeout expires, keepalive
      messages are sent across the lossless, ordered communications channel
      to ensure that any break in the TCP is discovered.  If the session
      does reset, a reconnection is attempted and affected requests are
      resent (by the message transport layer).
      Signed-off-by: NSage Weil <sage@newdream.net>
      f24e9980