Re: SystemV IPC. Segment info
On Tue, Apr 30, 2013 at 07:49:40AM +0400, Vagner wrote: Tell me please, may I send this to PR, or this changes is not valid? A few weeks ago, I ran into problem, which related to SystemV IPC. More than 20 processes attached to a segment shared queue. Process-initiator for create segment was killed, as process which was accessed to segment last. Segment didn't free memory, but tagged it as SHMSEG_REMOVED as the result. This is a reason of memory overflow (memory assotiated as shm). Moreover, processes, which was attached to this segment did't get a new data. I have one resolve. I need to restarted all process, which still attached to segment. But this reason have a problem. We haven't list of this processes at system. Moreover, struct shmid_ds, which described segment, haven't this info too. This patch is a resolve of problem. It: - added a linked list of structures shmid_pi in struct shmid_ds. PID (and last access time) recorded to this struct consistently. Memory allocates with ident 'shminfo' for this list of struct shmid_pi. - added syscall shminf for get all elements from list shmid_ds. - added option [-P] in ipcs(1) for system call shminf. I think it is strange to maintain pids in the VM system. This makes the VM system more complex for little reason (because the information is only needed for monitoring, not normal operation). Perhaps it is possible to do what you want using procstat -v or a slight extension to it. Alternatively, you may find a different way to get rid of your stale worker processes. For example, before invoking shmctl(IPC_RMID), set a flag inside the memory segment that all workers should exit and activate whatever mechanism you use for telling the workers that they need to do something. -- Jilles Tjoelker ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: SystemV IPC. Segment info
On 16:44 Tue 30 Apr , Jilles Tjoelker wrote: On Tue, Apr 30, 2013 at 07:49:40AM +0400, Vagner wrote: Tell me please, may I send this to PR, or this changes is not valid? A few weeks ago, I ran into problem, which related to SystemV IPC. More than 20 processes attached to a segment shared queue. Process-initiator for create segment was killed, as process which was accessed to segment last. Segment didn't free memory, but tagged it as SHMSEG_REMOVED as the result. This is a reason of memory overflow (memory assotiated as shm). Moreover, processes, which was attached to this segment did't get a new data. I have one resolve. I need to restarted all process, which still attached to segment. But this reason have a problem. We haven't list of this processes at system. Moreover, struct shmid_ds, which described segment, haven't this info too. This patch is a resolve of problem. It: - added a linked list of structures shmid_pi in struct shmid_ds. PID (and last access time) recorded to this struct consistently. Memory allocates with ident 'shminfo' for this list of struct shmid_pi. - added syscall shminf for get all elements from list shmid_ds. - added option [-P] in ipcs(1) for system call shminf. I think it is strange to maintain pids in the VM system. This makes the VM system more complex for little reason (because the information is only needed for monitoring, not normal operation). Yes, it, may be, not nice solution, but I don't found there I can see address of segment (from user space). If you know where can see, tell me please. Perhaps it is possible to do what you want using procstat -v or a slight extension to it. procstat(1) can show for me only proc-ki_vmspace struct, but there not contain info about mapping shared serments. Alternatively, you may find a different way to get rid of your stale worker processes. For example, before invoking shmctl(IPC_RMID), set a flag inside the memory segment that all workers should exit and activate whatever mechanism you use for telling the workers that they need to do something. This solution requires action from workers, but I think many developers will not want to rewrite their soft... -- Jilles Tjoelker ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org of segment (from user space). If you know where can see, tell me please. \ -- Respectfully, Stanislav Putrya System administrator FotoStrana.Ru Ltd. ICQ IM: 328585847 Jabber-GoogleTalk: root.vagner mob.phone SPB: +79215788755 mob.phone RND: +79525600664 email: vag...@bsdway.ru email: put...@playform.ru email: root.vag...@gmail.com site: bsdway.ru site: fotostrana.ru ( ) ASCII ribbon campaign X - against HTML, vCards and / \ - proprietary attachments in e-mail ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: SystemV IPC. Segment info
Tell me please, may I send this to PR, or this changes is not valid? Hello! A few weeks ago, I ran into problem, which related to SystemV IPC. More than 20 processes attached to a segment shared queue. Process-initiator for create segment was killed, as process which was accessed to segment last. Segment didn't free memory, but tagged it as SHMSEG_REMOVED as the result. This is a reason of memory overflow (memory assotiated as shm). Moreover, processes, which was attached to this segment did't get a new data. I have one resolve. I need to restarted all process, which still attached to segment. But this reason have a problem. We haven't list of this processes at system. Moreover, struct shmid_ds, which described segment, haven't this info too. This patch is a resolve of problem. It: - added a linked list of structures shmid_pi in struct shmid_ds. PID (and last access time) recorded to this struct consistently. Memory allocates with ident 'shminfo' for this list of struct shmid_pi. - added syscall shminf for get all elements from list shmid_ds. - added option [-P] in ipcs(1) for system call shminf. Thanks. -- Respectfully, Stanislav Putrya System administrator FotoStrana.Ru Ltd. ICQ IM: 328585847 Jabber-GoogleTalk: root.vagner mob.phone SPB: +79215788755 mob.phone RND: +79525600664 email: vag...@bsdway.ru email: put...@playform.ru email: root.vag...@gmail.com site: bsdway.ru site: fotostrana.ru ( ) ASCII ribbon campaign X - against HTML, vCards and / \ - proprietary attachments in e-mail -- next part -- A non-text attachment was scrubbed... Name: shminf.patch Type: text/x-diff Size: 30460 bytes Desc: not available URL: http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20130415/233bf05f/attachment-0001.patch ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org