diff for duplicates of <fc8f2af7-9fc2-cb55-3065-75a4060b7c82@amd.com> diff --git a/a/1.1.hdr b/a/1.1.hdr deleted file mode 100644 index 0313c25..0000000 --- a/a/1.1.hdr +++ /dev/null @@ -1,2 +0,0 @@ -Content-Type: text/plain; charset=utf-8; format=flowed -Content-Transfer-Encoding: 8bit diff --git a/a/1.2.hdr b/a/1.2.hdr deleted file mode 100644 index 432d92c..0000000 --- a/a/1.2.hdr +++ /dev/null @@ -1,2 +0,0 @@ -Content-Type: text/html; charset=utf-8 -Content-Transfer-Encoding: 8bit diff --git a/a/1.1.txt b/N1/1.txt similarity index 100% rename from a/1.1.txt rename to N1/1.txt diff --git a/a/1.2.bin b/N1/2.bin similarity index 100% rename from a/1.2.bin rename to N1/2.bin diff --git a/a/2.hdr b/N1/2.hdr index 4b86001..6fa471c 100644 --- a/a/2.hdr +++ b/N1/2.hdr @@ -1,4 +1,2 @@ -Content-Type: text/plain; charset="us-ascii" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Content-Disposition: inline +Content-Type: text/html; charset=utf-8 +Content-Transfer-Encoding: quoted-printable diff --git a/a/2.txt b/a/2.txt deleted file mode 100644 index 3b3a377..0000000 --- a/a/2.txt +++ /dev/null @@ -1,4 +0,0 @@ -_______________________________________________ -dri-devel mailing list -dri-devel@lists.freedesktop.org -https://lists.freedesktop.org/mailman/listinfo/dri-devel diff --git a/a/content_digest b/N1/content_digest index cb3c621..dff0e63 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -14,7 +14,7 @@ linaro-mm-sig@lists.linaro.org linux-kernel@vger.kernel.org " linux-mm@kvack.org\0" - "\02:1.1\0" + "\01:1\0" "b\0" "Am 16.09.20 um 11:53 schrieb Daniel Vetter:\n" "> On Mon, Sep 14, 2020 at 08:26:47PM +0200, Christian K\303\266nig wrote:\n" @@ -121,175 +121,169 @@ ">> Christian.\n" ">>\n" >>> Jason - "\02:1.2\0" - "b\0" - "<html><head>\n" - "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n" - " </head>\n" - " <body>\n" - " <div class=\"moz-cite-prefix\">Am 16.09.20 um 11:53 schrieb Daniel\n" - " Vetter:<br>\n" - " </div>\n" - " <blockquote type=\"cite\" cite=\"mid:20200916095359.GD438822@phenom.ffwll.local\">\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">On Mon, Sep 14, 2020 at 08:26:47PM +0200, Christian K\303\266nig wrote:\n" - "</pre>\n" - " <blockquote type=\"cite\">\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">Am 14.09.20 um 16:06 schrieb Jason Gunthorpe:\n" - "</pre>\n" - " <blockquote type=\"cite\">\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">On Mon, Sep 14, 2020 at 03:30:47PM +0200, Christian K\303\266nig wrote:\n" - "</pre>\n" - " <blockquote type=\"cite\">\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">Am 14.09.20 um 15:29 schrieb Christian K\303\266nig:\n" - "</pre>\n" - " <blockquote type=\"cite\">\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">Hi Andrew,\n" - "\n" - "I'm the new DMA-buf maintainer and Daniel and others came up with\n" - "patches extending the use of the dma_buf_mmap() function.\n" - "\n" - "Now this function is doing something a bit odd by changing the\n" - "vma->vm_file while installing a VMA in the mmap() system call\n" - "</pre>\n" - " </blockquote>\n" - " </blockquote>\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">It doesn't look obviously safe as mmap_region() has an interesting mix\n" - "of file and vma->file\n" - "\n" - "Eg it calls mapping_unmap_writable() using both routes\n" - "</pre>\n" - " </blockquote>\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">\n" - "Thanks for the hint, going to take a look at that code tomorrow.\n" - "\n" - "</pre>\n" - " <blockquote type=\"cite\">\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">What about security? Is it OK that some other random file, maybe in\n" - "another process, is being linked to this mmap?\n" - "</pre>\n" - " </blockquote>\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">\n" - "Good question, I have no idea. That's why I send out this mail.\n" - "\n" - "</pre>\n" - " <blockquote type=\"cite\">\n" - " <blockquote type=\"cite\">\n" - " <blockquote type=\"cite\">\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">The background here is that DMA-buf allows device drivers to\n" - "export buffer which are then imported into another device\n" - "driver. The mmap() handler of the importing device driver then\n" - "find that the pgoff belongs to the exporting device and so\n" - "redirects the mmap() call there.\n" - "</pre>\n" - " </blockquote>\n" - " </blockquote>\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">So the pgoff is some virtualized thing?\n" - "</pre>\n" - " </blockquote>\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">\n" - "Yes, absolutely.\n" - "</pre>\n" - " </blockquote>\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">\n" - "Maybe notch more context. Conceptually the buffer objects we use to manage\n" - "gpu memory are all stand-alone objects, internally refcounted and\n" - "everything. And if you export them as a dma-buf, then they are indeed\n" - "stand-alone file descriptors like any other.\n" - "\n" - "But within the driver, we generally need thousands of these, and that\n" - "tends to bring fd exhaustion problems with it. That's why all the private\n" - "buffer objects which aren't shared with other process or other drivers are\n" - "handles only valid for a specific fd instance of the drm chardev (each\n" - "open gets their own namespace), and only for ioctls done on that chardev.\n" - "And for mmap we assign fake (but unique across all open fd on it) offsets\n" - "within the overall chardev. Hence all the pgoff mangling and re-mangling.\n" - "\n" - "Now for unmap_mapping_range we'd like it to find all such fake offset\n" - "aliases pointing at the one underlying buffer object:\n" - "- mmap on the dma-buf fd, at offset 0\n" - "- mmap on the drm chardev where the buffer was originally allocated, at some unique offset\n" - "- mmap on the drm chardev where the buffer was imported, again at some\n" - " (likely) different unique (for that chardev) offset.\n" - "\n" - "So to make unmap_mapping_range work across the entire delegation change\n" - "we'd actually need to change the vma->vma_file and pgoff twice:\n" - "- once when forwarding from the importing drm chardev to the dma-buf\n" - "- once when forwarding from the dma-buf to the exported drm chardev fake\n" - " offset, which (mostly for historical reasons) is considered the\n" - " canonical fake offset\n" - "\n" - "We can't really do the delegation in userspace because:\n" - "- the importer might not have access to the exporters drm chardev, it only\n" - " gets the dma-buf. If we'd give it the underlying drm chardev it could do\n" - " stuff like issue rendering commands, breaking the access model.\n" - "- the dma-buf fd is only used to establish the sharing, once it's imported\n" - " everywhere it generally gets closed. Userspace could re-export it and\n" - " then call mmap on that, but feels a bit contrived.\n" - "- especially on SoC platforms this has already become uapi. It's not a big\n" - " problem because the drivers that really need unmap_mapping_range to work\n" - " are the big gpu drivers with discrete vram, where mappings need to be\n" - " invalidate when moving buffer objects in/out of vram.\n" - "\n" - "Hence why we'd like to be able to forward aliasing mappings and adjust the\n" - "file and pgoff, while hopefully everything keeps working. I thought this\n" - "would work, but Christian noticed it doesn't really.</pre>\n" - " </blockquote>\n" - " <br>\n" - " Well to be clear I'm still not sure if that works or not :)<br>\n" - " <br>\n" - " But Jason pointed me to the right piece of code. See this comment in\n" - " in mmap_region():<br>\n" - " <br>\n" - " <blockquote type=\"cite\">\n" - " <pre>\t\t<span class=\"cm\">/* ->mmap() can change vma->vm_file, but must guarantee that</span>\n" - "<span class=\"cm\">\t\t * vma_link() below can deny write-access if VM_DENYWRITE is set</span>\n" - "<span class=\"cm\">\t\t * and map writably if VM_SHARED is set. This usually means the</span>\n" - "<span class=\"cm\">\t\t * new file must not have been exposed to user-space, yet.</span>\n" - "<span class=\"cm\">\t\t */</span>\n" - "\t\t<span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/vma\">vma</a></span><span class=\"o\">-></span><span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/vm_file\">vm_file</a></span> <span class=\"o\">=</span> <span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/get_file\">get_file</a></span><span class=\"p\">(</span><span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/file\">file</a></span><span class=\"p\">);</span>\n" - "\t\t<span class=\"n\">error</span> <span class=\"o\">=</span> <span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/call_mmap\">call_mmap</a></span><span class=\"p\">(</span><span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/file\">file</a></span><span class=\"p\">,</span> <span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/vma\">vma</a></span><span class=\"p\">);</span></pre>\n" - " </blockquote>\n" - " <br>\n" - " So changing vma->vm_file is allowed at least under certain\n" - " circumstances.<br>\n" - " <br>\n" - " Only the "file must not have been exposed to user-space, yet" part\n" - " still needs double checking. Currently working on that.<br>\n" - " <br>\n" - " Regards,<br>\n" - " Christian.<br>\n" - " <br>\n" - " <blockquote type=\"cite\" cite=\"mid:20200916095359.GD438822@phenom.ffwll.local\">\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">\n" - "\n" - "Cheers, Daniel\n" - "\n" - "\n" - "</pre>\n" - " <blockquote type=\"cite\">\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">\n" - "Christian.\n" - "\n" - "</pre>\n" - " <blockquote type=\"cite\">\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">\n" - "Jason\n" - "</pre>\n" - " </blockquote>\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">\n" - "</pre>\n" - " </blockquote>\n" - " <pre class=\"moz-quote-pre\" wrap=\"\">\n" - "</pre>\n" - " </blockquote>\n" - " <br>\n" - " </body>\n" - "</html>\n" "\01:2\0" "b\0" - "_______________________________________________\n" - "dri-devel mailing list\n" - "dri-devel@lists.freedesktop.org\n" - https://lists.freedesktop.org/mailman/listinfo/dri-devel + "<html><head>\r\n" + "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n" + " </head>\r\n" + " <body>\r\n" + " <div class=\"moz-cite-prefix\">Am 16.09.20 um 11:53 schrieb Daniel\r\n" + " Vetter:<br>\r\n" + " </div>\r\n" + " <blockquote type=\"cite\" cite=\"mid:20200916095359.GD438822@phenom.ffwll.local\">\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">On Mon, Sep 14, 2020 at 08:26:47PM +0200, Christian K\303\266nig wrote:\r\n" + "</pre>\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">Am 14.09.20 um 16:06 schrieb Jason Gunthorpe:\r\n" + "</pre>\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">On Mon, Sep 14, 2020 at 03:30:47PM +0200, Christian K\303\266nig wrote:\r\n" + "</pre>\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">Am 14.09.20 um 15:29 schrieb Christian K\303\266nig:\r\n" + "</pre>\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">Hi Andrew,\r\n" + "\r\n" + "I'm the new DMA-buf maintainer and Daniel and others came up with\r\n" + "patches extending the use of the dma_buf_mmap() function.\r\n" + "\r\n" + "Now this function is doing something a bit odd by changing the\r\n" + "vma->vm_file while installing a VMA in the mmap() system call\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " </blockquote>\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">It doesn't look obviously safe as mmap_region() has an interesting mix\r\n" + "of file and vma->file\r\n" + "\r\n" + "Eg it calls mapping_unmap_writable() using both routes\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">\r\n" + "Thanks for the hint, going to take a look at that code tomorrow.\r\n" + "\r\n" + "</pre>\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">What about security? Is it OK that some other random file, maybe in\r\n" + "another process, is being linked to this mmap?\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">\r\n" + "Good question, I have no idea. That's why I send out this mail.\r\n" + "\r\n" + "</pre>\r\n" + " <blockquote type=\"cite\">\r\n" + " <blockquote type=\"cite\">\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">The background here is that DMA-buf allows device drivers to\r\n" + "export buffer which are then imported into another device\r\n" + "driver. The mmap() handler of the importing device driver then\r\n" + "find that the pgoff belongs to the exporting device and so\r\n" + "redirects the mmap() call there.\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " </blockquote>\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">So the pgoff is some virtualized thing?\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">\r\n" + "Yes, absolutely.\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">\r\n" + "Maybe notch more context. Conceptually the buffer objects we use to manage\r\n" + "gpu memory are all stand-alone objects, internally refcounted and\r\n" + "everything. And if you export them as a dma-buf, then they are indeed\r\n" + "stand-alone file descriptors like any other.\r\n" + "\r\n" + "But within the driver, we generally need thousands of these, and that\r\n" + "tends to bring fd exhaustion problems with it. That's why all the private\r\n" + "buffer objects which aren't shared with other process or other drivers are\r\n" + "handles only valid for a specific fd instance of the drm chardev (each\r\n" + "open gets their own namespace), and only for ioctls done on that chardev.\r\n" + "And for mmap we assign fake (but unique across all open fd on it) offsets\r\n" + "within the overall chardev. Hence all the pgoff mangling and re-mangling.\r\n" + "\r\n" + "Now for unmap_mapping_range we'd like it to find all such fake offset\r\n" + "aliases pointing at the one underlying buffer object:\r\n" + "- mmap on the dma-buf fd, at offset 0\r\n" + "- mmap on the drm chardev where the buffer was originally allocated, at some unique offset\r\n" + "- mmap on the drm chardev where the buffer was imported, again at some\r\n" + " (likely) different unique (for that chardev) offset.\r\n" + "\r\n" + "So to make unmap_mapping_range work across the entire delegation change\r\n" + "we'd actually need to change the vma->vma_file and pgoff twice:\r\n" + "- once when forwarding from the importing drm chardev to the dma-buf\r\n" + "- once when forwarding from the dma-buf to the exported drm chardev fake\r\n" + " offset, which (mostly for historical reasons) is considered the\r\n" + " canonical fake offset\r\n" + "\r\n" + "We can't really do the delegation in userspace because:\r\n" + "- the importer might not have access to the exporters drm chardev, it only\r\n" + " gets the dma-buf. If we'd give it the underlying drm chardev it could do\r\n" + " stuff like issue rendering commands, breaking the access model.\r\n" + "- the dma-buf fd is only used to establish the sharing, once it's imported\r\n" + " everywhere it generally gets closed. Userspace could re-export it and\r\n" + " then call mmap on that, but feels a bit contrived.\r\n" + "- especially on SoC platforms this has already become uapi. It's not a big\r\n" + " problem because the drivers that really need unmap_mapping_range to work\r\n" + " are the big gpu drivers with discrete vram, where mappings need to be\r\n" + " invalidate when moving buffer objects in/out of vram.\r\n" + "\r\n" + "Hence why we'd like to be able to forward aliasing mappings and adjust the\r\n" + "file and pgoff, while hopefully everything keeps working. I thought this\r\n" + "would work, but Christian noticed it doesn't really.</pre>\r\n" + " </blockquote>\r\n" + " <br>\r\n" + " Well to be clear I'm still not sure if that works or not :)<br>\r\n" + " <br>\r\n" + " But Jason pointed me to the right piece of code. See this comment in\r\n" + " in mmap_region():<br>\r\n" + " <br>\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre>\t\t<span class=\"cm\">/* ->mmap() can change vma->vm_file, but must guarantee that</span>\r\n" + "<span class=\"cm\">\t\t * vma_link() below can deny write-access if VM_DENYWRITE is set</span>\r\n" + "<span class=\"cm\">\t\t * and map writably if VM_SHARED is set. This usually means the</span>\r\n" + "<span class=\"cm\">\t\t * new file must not have been exposed to user-space, yet.</span>\r\n" + "<span class=\"cm\">\t\t */</span>\r\n" + "\t\t<span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/vma\">vma</a></span><span class=\"o\">-></span><span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/vm_file\">vm_file</a></span> <span class=\"o\">=</span> <span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/get_file\">get_file</a></span><span class=\"p\">(</span><span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/file\">file</a></span><span class=\"p\">);</span>\r\n" + "\t\t<span class=\"n\">error</span> <span class=\"o\">=</span> <span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/call_mmap\">call_mmap</a></span><span class=\"p\">(</span><span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/file\">file</a></span><span class=\"p\">,</span> <span class=\"n\"><a href=\"https://elixir.bootlin.com/linux/v5.9-rc5/C/ident/vma\">vma</a></span><span class=\"p\">);</span></pre>\r\n" + " </blockquote>\r\n" + " <br>\r\n" + " So changing vma->vm_file is allowed at least under certain\r\n" + " circumstances.<br>\r\n" + " <br>\r\n" + " Only the "file must not have been exposed to user-space, yet" part\r\n" + " still needs double checking. Currently working on that.<br>\r\n" + " <br>\r\n" + " Regards,<br>\r\n" + " Christian.<br>\r\n" + " <br>\r\n" + " <blockquote type=\"cite\" cite=\"mid:20200916095359.GD438822@phenom.ffwll.local\">\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">\r\n" + "\r\n" + "Cheers, Daniel\r\n" + "\r\n" + "\r\n" + "</pre>\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">\r\n" + "Christian.\r\n" + "\r\n" + "</pre>\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">\r\n" + "Jason\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " <pre class=\"moz-quote-pre\" wrap=\"\">\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " <br>\r\n" + " </body>\r\n" + "</html>\r\n" -80583cfbb476eefd963f82984e6369ccbde97447b5b183b9cd870cd201986065 +cb87956250f99bc5e03e331b1e6dbffad479a213bf6e2e6052521a7e0b3b93dd
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.