From: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk> To: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Cc: atull <atull@opensource.altera.com>, gregkh@linuxfoundation.org, Pavel Machek <pavel@denx.de>, hpa@zytor.com, monstr@monstr.eu, michal.simek@xilinx.com, rdunlap@infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, pantelis.antoniou@konsulko.com, robh+dt@kernel.org, grant.likely@linaro.org, iws@ovro.caltech.edu, linux-doc@vger.kernel.org, broonie@kernel.org, philip@balister.org, rubini@gnudd.com, s.trumtrar@pengutronix.de, jason@lakedaemon.net, kyle.teske@ni.com, nico@linaro.org, balbi@ti.com, m.chehab@samsung.com, davidb@codeaurora.org, rob@landley.net, davem@davemloft.net, cesarb@cesarb.net, sameo@linux.intel.com, akpm@linux-foundation.org, linus.walleij@linaro.org, pawel.moll@arm.com, mark.rutland@arm.com, ijc+devicetree@hellion.org.uk, galak@codeaurora.org, devel@driverdev.osuosl.org, delicious.quinoa@gmail.com, dinguyen@opensource.altera.com, yvanderv@opensource.altera.com Subject: Re: [PATCH v8 2/4] fpga manager: add sysfs interface document Date: Thu, 15 Jan 2015 20:45:02 +0000 [thread overview] Message-ID: <20150115204502.591bca1d@lxorguk.ukuu.org.uk> (raw) In-Reply-To: <20150115184726.GA23247@obsidianresearch.com> On Thu, 15 Jan 2015 11:47:26 -0700 Jason Gunthorpe <jgunthorpe@obsidianresearch.com> wrote: > It is a novel idea, my concern would be that embedding the FPGA in the > DT makes it permanent unswappable kernel memory. > Not having the kernel hold the FPGA is best for many uses. If you have a filesysytem before the FPGA is set up then it belongs in the file system. As you presumably loaded the kernel from somewhere there ought to be a file system (even an initrd). > Having the kernel hold the FPGA as a swppable file handle/mmap of some > sort is next best (obviously the fs must be operating during resume) For a lot of hardware that gets somewhat hairy because you don't know what the dependancies between devices are on the resume but yes. > Unswappable kernel memory is the worst choice There is another case here - which is where the firmware is somewhere else physically. For example in PCI ROM space, or flash, but designed to be loaded by the OS. > I think to justify the ioctls you need a reason to have the context > of a FD. sysfs is stateless, so if my process dies the kernel doesn't > know. That isn't to say the stateless information doesn't belong in sysfs. Eg you don't neccessarily want to open the device node and go through ioctls just for bits of information that are interesting to reporting tools. (Imagine an 'lsfpga' tool for the kind of things you'd leave in sysfs) > Identifying the ioctls needed would probably clarify things. My > rough start would be > > - Get status: programed, not programmed, error? > Bitfile type? (eg Xilinx has nearly every permutation of bit/byte > ordering) That's probably some kind of "what are you" ioctl that returns the vendor/type information. > - Hand over to a DT overlay (how does this work?) Lock transfers > from FD to kernel That bit isn't stateful so I would actually have expected something in the kernel ABI along the lines of request_fpga(blah) which does if in use by user EBUSY lock it (all user opens will fail) and release_fpga(blah) and a sysfs node indicating its busy (and perhaps also what for if the request_fpga passes a textual name) > Not sure about partial reconfiguration - clearly the kernel needs to > know and check that the bitfiles are of the correct family, I wonder > if the approach should be to program a basis on the FPGA which then > creates a new FPGA device in the system that can accept the partial > reconfiguration - this way the locking makes sense, the basis is > locked by the kernel and devices and the overlay remains > lockable/swappable/whatever by a dedicated /dev/ node ?? I think so. If you closed the device you have no idea what happened between the close and a re-open, therefore you have no idea what the FPGA state is. > Just thinking aloud, I've never had a use case for partial > reconfiguration. The API handles it but whether it needs to be there from day one I don't know. Alan
WARNING: multiple messages have this Message-ID (diff)
From: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk> To: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Cc: mark.rutland@arm.com, linux-doc@vger.kernel.org, rubini@gnudd.com, pantelis.antoniou@konsulko.com, hpa@zytor.com, s.trumtrar@pengutronix.de, devel@driverdev.osuosl.org, sameo@linux.intel.com, nico@linaro.org, ijc+devicetree@hellion.org.uk, michal.simek@xilinx.com, kyle.teske@ni.com, grant.likely@linaro.org, davidb@codeaurora.org, linus.walleij@linaro.org, cesarb@cesarb.net, devicetree@vger.kernel.org, jason@lakedaemon.net, pawel.moll@arm.com, iws@ovro.caltech.edu, atull <atull@opensource.altera.com>, galak@codeaurora.org, broonie@kernel.org, philip@balister.org, dinguyen@opensource.altera.com, monstr@monstr.eu, Pavel Machek <pavel@denx.de>, yvanderv@opensource.altera.com, linux-kernel@vger.kernel.org, balbi@ti.com, delicious.quinoa@gmail.com, robh+dt@kernel.org, rob@landley.net, gregkh@linuxfoundation.org, akpm@linux-foundation.org, davem@davemloft.net, m.chehab@samsung.c Subject: Re: [PATCH v8 2/4] fpga manager: add sysfs interface document Date: Thu, 15 Jan 2015 20:45:02 +0000 [thread overview] Message-ID: <20150115204502.591bca1d@lxorguk.ukuu.org.uk> (raw) In-Reply-To: <20150115184726.GA23247@obsidianresearch.com> On Thu, 15 Jan 2015 11:47:26 -0700 Jason Gunthorpe <jgunthorpe@obsidianresearch.com> wrote: > It is a novel idea, my concern would be that embedding the FPGA in the > DT makes it permanent unswappable kernel memory. > Not having the kernel hold the FPGA is best for many uses. If you have a filesysytem before the FPGA is set up then it belongs in the file system. As you presumably loaded the kernel from somewhere there ought to be a file system (even an initrd). > Having the kernel hold the FPGA as a swppable file handle/mmap of some > sort is next best (obviously the fs must be operating during resume) For a lot of hardware that gets somewhat hairy because you don't know what the dependancies between devices are on the resume but yes. > Unswappable kernel memory is the worst choice There is another case here - which is where the firmware is somewhere else physically. For example in PCI ROM space, or flash, but designed to be loaded by the OS. > I think to justify the ioctls you need a reason to have the context > of a FD. sysfs is stateless, so if my process dies the kernel doesn't > know. That isn't to say the stateless information doesn't belong in sysfs. Eg you don't neccessarily want to open the device node and go through ioctls just for bits of information that are interesting to reporting tools. (Imagine an 'lsfpga' tool for the kind of things you'd leave in sysfs) > Identifying the ioctls needed would probably clarify things. My > rough start would be > > - Get status: programed, not programmed, error? > Bitfile type? (eg Xilinx has nearly every permutation of bit/byte > ordering) That's probably some kind of "what are you" ioctl that returns the vendor/type information. > - Hand over to a DT overlay (how does this work?) Lock transfers > from FD to kernel That bit isn't stateful so I would actually have expected something in the kernel ABI along the lines of request_fpga(blah) which does if in use by user EBUSY lock it (all user opens will fail) and release_fpga(blah) and a sysfs node indicating its busy (and perhaps also what for if the request_fpga passes a textual name) > Not sure about partial reconfiguration - clearly the kernel needs to > know and check that the bitfiles are of the correct family, I wonder > if the approach should be to program a basis on the FPGA which then > creates a new FPGA device in the system that can accept the partial > reconfiguration - this way the locking makes sense, the basis is > locked by the kernel and devices and the overlay remains > lockable/swappable/whatever by a dedicated /dev/ node ?? I think so. If you closed the device you have no idea what happened between the close and a re-open, therefore you have no idea what the FPGA state is. > Just thinking aloud, I've never had a use case for partial > reconfiguration. The API handles it but whether it needs to be there from day one I don't know. Alan
next prev parent reply other threads:[~2015-01-15 20:47 UTC|newest] Thread overview: 128+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-01-06 20:13 [PATCH v8 0/4] FPGA Manager Framework atull 2015-01-06 20:13 ` atull 2015-01-06 20:13 ` [PATCH v8 1/4] doc: add bindings document for altera fpga manager atull 2015-01-06 20:13 ` atull 2015-01-06 22:05 ` Rob Herring 2015-01-06 22:05 ` Rob Herring 2015-01-06 22:34 ` atull 2015-01-06 22:34 ` atull 2015-01-09 15:50 ` Rob Herring 2015-01-09 15:50 ` Rob Herring 2015-01-09 18:58 ` atull 2015-01-09 18:58 ` atull 2015-01-06 20:13 ` [PATCH v8 2/4] fpga manager: add sysfs interface document atull 2015-01-06 20:13 ` atull 2015-01-07 8:48 ` Pavel Machek 2015-01-07 8:48 ` Pavel Machek 2015-01-09 19:14 ` atull 2015-01-09 19:14 ` atull 2015-01-09 20:56 ` Pavel Machek 2015-01-09 20:56 ` Pavel Machek 2015-01-10 8:10 ` Pantelis Antoniou 2015-01-10 8:10 ` Pantelis Antoniou 2015-01-10 15:11 ` Pavel Machek 2015-01-10 15:11 ` Pavel Machek 2015-01-11 16:29 ` atull 2015-01-11 16:29 ` atull 2015-01-12 8:45 ` Pavel Machek 2015-01-12 8:45 ` Pavel Machek 2015-01-12 13:48 ` Michal Simek 2015-01-12 13:48 ` Michal Simek 2015-01-13 7:28 ` Pavel Machek 2015-01-13 7:28 ` Pavel Machek 2015-01-13 7:40 ` Pantelis Antoniou 2015-01-13 7:40 ` Pantelis Antoniou 2015-01-13 7:56 ` Pavel Machek 2015-01-13 7:56 ` Pavel Machek 2015-01-13 17:27 ` atull 2015-01-13 17:27 ` atull 2015-01-12 16:05 ` Rob Herring 2015-01-12 16:05 ` Rob Herring 2015-01-12 16:26 ` Mark Brown 2015-01-12 16:26 ` Mark Brown 2015-01-12 18:06 ` Jason Gunthorpe 2015-01-12 18:06 ` Jason Gunthorpe 2015-01-13 16:21 ` One Thousand Gnomes 2015-01-13 16:21 ` One Thousand Gnomes 2015-01-15 21:52 ` Pavel Machek 2015-01-15 21:52 ` Pavel Machek 2015-01-12 21:01 ` One Thousand Gnomes 2015-01-12 21:01 ` One Thousand Gnomes 2015-01-12 21:43 ` Jason Gunthorpe 2015-01-12 21:43 ` Jason Gunthorpe 2015-01-13 16:28 ` One Thousand Gnomes 2015-01-13 16:28 ` One Thousand Gnomes 2015-01-13 17:26 ` Pantelis Antoniou 2015-01-13 17:26 ` Pantelis Antoniou 2015-01-13 19:44 ` atull 2015-01-13 19:44 ` atull 2015-01-14 15:58 ` One Thousand Gnomes 2015-01-14 15:58 ` One Thousand Gnomes 2015-01-13 20:00 ` Jason Gunthorpe 2015-01-13 20:00 ` Jason Gunthorpe 2015-01-13 21:37 ` atull 2015-01-13 21:37 ` atull 2015-01-13 22:24 ` Jason Gunthorpe 2015-01-13 22:24 ` Jason Gunthorpe 2015-01-14 16:06 ` One Thousand Gnomes 2015-01-14 16:06 ` One Thousand Gnomes 2015-01-14 18:12 ` Jason Gunthorpe 2015-01-14 18:12 ` Jason Gunthorpe 2015-01-14 19:01 ` Pantelis Antoniou 2015-01-14 19:01 ` Pantelis Antoniou 2015-01-15 11:36 ` One Thousand Gnomes 2015-01-15 11:36 ` One Thousand Gnomes 2015-01-15 11:44 ` Mark Brown 2015-01-15 11:44 ` Mark Brown 2015-01-15 16:34 ` atull 2015-01-15 16:34 ` atull 2015-01-15 18:47 ` Jason Gunthorpe 2015-01-15 18:47 ` Jason Gunthorpe 2015-01-15 20:45 ` One Thousand Gnomes [this message] 2015-01-15 20:45 ` One Thousand Gnomes 2015-01-15 20:54 ` Pantelis Antoniou 2015-01-15 20:54 ` Pantelis Antoniou 2015-01-21 16:01 ` One Thousand Gnomes 2015-01-21 16:01 ` One Thousand Gnomes 2015-01-21 16:33 ` Pantelis Antoniou 2015-01-21 16:33 ` Pantelis Antoniou 2015-01-21 20:27 ` Jason Gunthorpe 2015-01-21 20:27 ` Jason Gunthorpe 2015-01-21 20:32 ` Pantelis Antoniou 2015-01-21 20:32 ` Pantelis Antoniou 2015-02-15 22:40 ` Pavel Machek 2015-02-15 22:40 ` Pavel Machek 2015-02-17 17:07 ` Rob Landley 2015-02-17 17:07 ` Rob Landley 2015-02-17 19:17 ` Pavel Machek 2015-02-17 19:17 ` Pavel Machek 2015-02-19 12:46 ` Michal Simek 2015-02-19 12:46 ` Michal Simek 2015-02-21 6:31 ` atull 2015-02-21 6:31 ` atull 2015-02-17 18:12 ` Jason Gunthorpe 2015-02-17 18:12 ` Jason Gunthorpe 2015-01-15 21:42 ` Jason Gunthorpe 2015-01-15 21:42 ` Jason Gunthorpe 2015-01-17 21:11 ` Pavel Machek 2015-01-17 21:11 ` Pavel Machek 2015-01-06 20:13 ` [PATCH v8 3/4] staging: fpga manager: framework core atull 2015-01-06 20:13 ` atull 2015-01-06 20:13 ` [PATCH v8 4/4] staging: fpga manager: add driver for socfpga fpga manager atull 2015-01-06 20:13 ` atull 2015-01-10 18:11 ` [PATCH v8 0/4] FPGA Manager Framework Konrad Zapalowicz 2015-01-10 18:11 ` Konrad Zapalowicz 2015-01-11 16:08 ` atull 2015-01-11 16:08 ` atull 2015-01-11 16:24 ` Konrad Zapalowicz 2015-01-11 16:24 ` Konrad Zapalowicz 2015-01-11 19:52 ` Pavel Machek 2015-01-11 19:52 ` Pavel Machek 2015-01-11 20:58 ` Konrad Zapalowicz 2015-01-11 20:58 ` Konrad Zapalowicz 2015-01-11 21:31 ` Pavel Machek 2015-01-11 21:31 ` Pavel Machek 2015-01-12 13:50 ` Michal Simek 2015-01-12 13:50 ` Michal Simek 2015-01-12 14:06 ` Dan Carpenter 2015-01-12 14:06 ` Dan Carpenter
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20150115204502.591bca1d@lxorguk.ukuu.org.uk \ --to=gnomes@lxorguk.ukuu.org.uk \ --cc=akpm@linux-foundation.org \ --cc=atull@opensource.altera.com \ --cc=balbi@ti.com \ --cc=broonie@kernel.org \ --cc=cesarb@cesarb.net \ --cc=davem@davemloft.net \ --cc=davidb@codeaurora.org \ --cc=delicious.quinoa@gmail.com \ --cc=devel@driverdev.osuosl.org \ --cc=devicetree@vger.kernel.org \ --cc=dinguyen@opensource.altera.com \ --cc=galak@codeaurora.org \ --cc=grant.likely@linaro.org \ --cc=gregkh@linuxfoundation.org \ --cc=hpa@zytor.com \ --cc=ijc+devicetree@hellion.org.uk \ --cc=iws@ovro.caltech.edu \ --cc=jason@lakedaemon.net \ --cc=jgunthorpe@obsidianresearch.com \ --cc=kyle.teske@ni.com \ --cc=linus.walleij@linaro.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=m.chehab@samsung.com \ --cc=mark.rutland@arm.com \ --cc=michal.simek@xilinx.com \ --cc=monstr@monstr.eu \ --cc=nico@linaro.org \ --cc=pantelis.antoniou@konsulko.com \ --cc=pavel@denx.de \ --cc=pawel.moll@arm.com \ --cc=philip@balister.org \ --cc=rdunlap@infradead.org \ --cc=rob@landley.net \ --cc=robh+dt@kernel.org \ --cc=rubini@gnudd.com \ --cc=s.trumtrar@pengutronix.de \ --cc=sameo@linux.intel.com \ --cc=yvanderv@opensource.altera.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.