Re: some basic doubts / confusion regarding linux kernel / OS
On Thu, Oct 3, 2013 at 10:38 PM, ajay saini wrote: > Hi, > > I had some confusion/doubts regarding Linux kernel / OS and I want to be > completely sure that my understanding is right for below, and need your > inputs (would be really glad for your help): > > - There are functions defined in linux kernel. Some of these functions > have a line "EXPORT_SYMBOL();" after them. >These are the functions which are exported, so they can be directly > called from a linux kernel module - right ? (we just need to include header > files which define >them in our kernel module) > Yes. They are used during dynamic loading of modules. More here: http://stackoverflow.com/questions/6670589/use-of-export-symbol > > - There are some functions defined in linux kernel, which are not static > and are not exported, like "migrate_pages" in migrate.c and it is > mentioned in >include/linux/migrate.h file. >Is there a way to call these functions, directly from kernel module ?? > (even if I include the header file) ?? >If no, What is the technique used there, which prevents the module > from calling this function (even though I have included the header file)?? > The compiler? :) > - We have kernel header files defined in include/linux/ and there are user > space header files (the C libraries). > Can a user space program include kernel header file and call a kernel > function directly?? No , right ?? > Again, what is there which prevents a user space program from doing > so?? How this technique is implemented ?? > Kernel fxn's can't be called directly, you'll have to use either the syscal interface or one of the many (indirect) userspace-kernel communication mechanisms. Again, the "technique" here is that you compiler will barf if you try and use kernel functions directly as it won't find the definitions of those functions during linking. CMIIW. HTH, -mandeep > - I understand that, a struct page exists for each physical page in RAM. > And this linked list of struct pages are stored together at the beginning > of a zone. After this > storage, does the real data (content) of pages is stored. > Now each of these pages must be pointing to the data area/page which > they define ? Which is this field in the struct page, which points to this > data area, a physical > address + length of the page ? > > Thanks, > Ajay > > ___ > Kernelnewbies mailing list > Kernelnewbies@kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
RE: [PCIe spec question] How to get PCI express link up / link down notifications?
Hello Greg, > > On Fri, Oct 04, 2013 at 01:40:49AM +, Rajat Jain wrote: > > Hello, > > > > I have a HW which is not compliant with the PCI Express hot-plug (as > > described in the PCI express spec) because the HP signals from the > > downstream port are simply not connected. And I have a PCI express > > endpoint, that in the course of its life, will routinely undergo > > power-off and power-on on cycles. Hence the PCIe link to this device > > is expected to come down, and come up as part of regular operation. > > What hardware is this? Why not ask the manufacturer of it as they are > the ones in control of this type of thing. OK, Understood :-). Actually my question was generic. For e.g. say I have a topology where root port connects to a PCIe switch-1 that in turn connects to a PCIe switch-2. My question is if the PCIe link between the switch-1 and switch-2 goes down or up for some reason (say a power fault, or due to RESET pin assertion on the switch etc), is there a way to get notification interrupt at the root port or CPU? Essentially I am looking for a notification from downstream port of switch-1, that it saw a change in the link status. > > > I'm reading the PCI express spec trying to understand if it is > > possible to get notification interrupts, whenever the PCIe link to > > this device goes down or goes up. Can someone please help me > > understand if it is possible? > > Notification where? Notification to the CPU via the root port. Thanks a bunch, Rajat > > thanks, > > greg k-h > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > the body of a message to majord...@vger.kernel.org More majordomo info > at http://vger.kernel.org/majordomo-info.html > ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: [PATCH 1/3] Minimum wrapfs rename
On Wed, 02 Oct 2013 15:47:33 +0100, Alin Dobre said: > +++ b/fs/idmapfs/Kconfig > @@ -0,0 +1,8 @@ > +config IDMAP_FS > + tristate "Idmapfs stackable file system (EXPERIMENTAL)" > + help > + Wrapfs is a stackable file system which simply passes its > + operations to the lower layer. NAK. The help text states this is 'wrapfs', and that it merely passes its operations to the lower layer, presumably without being modified. The menu item calls it 'idmapfs',which implies that the requests *are* modified. This may be "wrapfs renamed to idmapfs, with minimum changes', but in this case it's *too* minimum. pgpLjB6_PSKpo.pgp Description: PGP signature ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
[PCIe spec question] How to get PCI express link up / link down notifications?
Hello, I have a HW which is not compliant with the PCI Express hot-plug (as described in the PCI express spec) because the HP signals from the downstream port are simply not connected. And I have a PCI express endpoint, that in the course of its life, will routinely undergo power-off and power-on on cycles. Hence the PCIe link to this device is expected to come down, and come up as part of regular operation. I'm reading the PCI express spec trying to understand if it is possible to get notification interrupts, whenever the PCIe link to this device goes down or goes up. Can someone please help me understand if it is possible? In the link control register, I only see the capability to generate interrupts when "link bandwidth" changes and looking at the text, I doubt if Link down or link up counts as "link bandwidth change". Is there a way to generate and interrupt / notification when the Link goes up or down? Thanks, Rajat Jain ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
unsubscribe
___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
some basic doubts / confusion regarding linux kernel / OS
Hi, I had some confusion/doubts regarding Linux kernel / OS and I want to be completely sure that my understanding is right for below, and need your inputs (would be really glad for your help): - There are functions defined in linux kernel. Some of these functions have a line "EXPORT_SYMBOL();" after them. These are the functions which are exported, so they can be directly called from a linux kernel module - right ? (we just need to include header files which define them in our kernel module) - There are some functions defined in linux kernel, which are not static and are not exported, like "migrate_pages" in migrate.c and it is mentioned in include/linux/migrate.h file. Is there a way to call these functions, directly from kernel module ?? (even if I include the header file) ?? If no, What is the technique used there, which prevents the module from calling this function (even though I have included the header file)?? - We have kernel header files defined in include/linux/ and there are user space header files (the C libraries). Can a user space program include kernel header file and call a kernel function directly?? No , right ?? Again, what is there which prevents a user space program from doing so?? How this technique is implemented ?? - I understand that, a struct page exists for each physical page in RAM. And this linked list of struct pages are stored together at the beginning of a zone. After this storage, does the real data (content) of pages is stored. Now each of these pages must be pointing to the data area/page which they define ? Which is this field in the struct page, which points to this data area, a physical address + length of the page ? Thanks, Ajay___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: User Space Network Drivers
james jones writes: > Is there any work being done on a kernel module for generic packet > processing in user space? Like the "Universal TUN/TAP device driver", you mean? Bjørn ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
User Space Network Drivers
Greetings, Is there any work being done on a kernel module for generic packet processing in user space? -James ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: can a bottom half be scheduled by another BH ??
On Oct 3, 2013 8:28 PM, "sujan dutta" wrote: > > > Yes you can, infact network subsystem softirq are reactive so it can run again. > however, reactivated softirq are not immediately process but until kernel handles the pending softirqs because it might introduce latency in user-space. > And for better performance, when pending BH grows excessively then family of kernel threads are wakes up to handle the load. Family of threads mentioned here is called ksoftirqd. Linux uses the ksoftirqd as the general solution to schedule softirq's to run before next interrupt and by putting them under scheduler control. Also this prevents consecutive softirq's from monopolizing the CPU. This also has the effect that the priority of ksoftirq needs to be considered when running very CPU-intensive applications and networking to get the proper balance of softirq/user balance. Increasing ksoftirq priority to 0 (eventually more) is reported to cure problems with low network performance at high CPU load. I think softirq calling itself is a problem which is delicately managed by linux kernel developers and how to improve the code and logic is an active field where you can contribute. > > > On 27-Sep-2013, at 4:44 PM, Vishwas Srivastava (vishsriv) < vishs...@cisco.com> wrote: > >> Hi Group, >>I am a bit unclear if, I could schedule another BH while I am already running in a BH ? >> For example, if I am running in a SOFT IRQ, can I schedule a tasklet from there ?? >> >> Thanks, >> Vishwas S >> >> >> ___ >> Kernelnewbies mailing list >> Kernelnewbies@kernelnewbies.org >> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > > > ___ > Kernelnewbies mailing list > Kernelnewbies@kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: can a bottom half be scheduled by another BH ??
Yes you can, infact network subsystem softirq are reactive so it can run again. however, reactivated softirq are not immediately process but until kernel handles the pending softirqs because it might introduce latency in user-space. And for better performance, when pending BH grows excessively then family of kernel threads are wakes up to handle the load. On 27-Sep-2013, at 4:44 PM, Vishwas Srivastava (vishsriv) wrote: > Hi Group, >I am a bit unclear if, I could schedule another BH while I am already > running in a BH ? > For example, if I am running in a SOFT IRQ, can I schedule a tasklet from > there ?? > > Thanks, > Vishwas S > > > ___ > Kernelnewbies mailing list > Kernelnewbies@kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On SPI stress testing on a mini2440 board.
Hi, I have a mini2440 board to which I have connected a TI MSP430 G2553 microcontroller. I am communicating via SPI from the mini2440 master to the MSP430 microcontroller slave. I am having a problem though. I have to put a chip select delay and hence I am waiting for 500 uS using udelay. Sometimes the data seems to skip or cause glitches when the load is high I think. I had connected 2 microcontrollers and it works fine when I stress test it. In case of the mini2440 board after quite some hours of continuous transfers I get glitches. Is udelay consistent? Thanks, Gautam. ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
kexec
Hello. Could anybody help with kexec. I cannot find some informaton from google. I try to use kexec for fast boot new kernel but I have error below: # kexec -l /boot/vmlinuz-3.12.0-rc1+ --initrd=/boot/initramfs-3.12.0-rc1+.img --command-line="$(cat /proc/cmdline)" kexec_load failed: Operation not permitted entry = 0x24eff5790 flags = 3e nr_segments = 3 segment[0].buf = 0x7fd169783210 segment[0].bufsz = 505250 segment[0].mem = 0x24d00 segment[0].memsz = 1413000 segment[1].buf = 0xbc3770 segment[1].bufsz = 4310 segment[1].mem = 0x24efef000 segment[1].memsz = 5000 segment[2].buf = 0xbba650 segment[2].bufsz = 90e0 segment[2].mem = 0x24eff5000 segment[2].memsz = b000 KEXEC option in the config is enabled. How can I decid this problem? Regards, Dmitry ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies