Re: Async Messenger RDMA IB ib_uverbs_write return EACCES

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2019-05-02 03:45, Liu, Changcheng wrote:
Hi Penyaev,
    Could you give more info about below point? I don't understand it
quiet well.
     > My question is why you daemonize your ceph services and do not
rely on systemd,
     > which does fork() on its own and runs each service with '-f'
flag, which means
     > do not daemonize?  So I would not daemonize services and this
can be a simple solution.

You provided the test, which reproduces the problem with -EACCESS,
where you explicitly call fork().  According to my code understanding
ceph services do fork() on early start only in daemon() glibc call
(which internally does fork()).  If you use systemd daemonization
is not used, so fork() is not called, so I am a bit confused: what
exact places in the code you know, where fork() is called?

    Thanks for your patch. I'll verify it when I'm back to office.
    Is it possible that rdma_cm library supply one API, e.g.
rdma_put_devices(), to close the devices in proper status?
    Then, the child process could re-open the device with
rdma_get_devices and query the device's attribute succeed.

That would be a perfect way, but I could not find an easy way to
destroy Infiniband singleton object (I did some experiments and
it turned out not so easy, e.g. if you can't deregister memory
regions in child process or after setuid()).

--
Roman




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux