Find the answer to your Linux question:
Results 1 to 4 of 4
Hi Guys, I'm hoping i've come to the right place and someone can help me here! I'm doing some work for a client, they have upgraded the processor in one ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Jul 2011
    Posts
    2

    Shared memory problem


    Hi Guys,

    I'm hoping i've come to the right place and someone can help me here!

    I'm doing some work for a client, they have upgraded the processor in one of their products due to redundancy issues. They were running linux with a custom application that uses a kernel module to gather data from the PCI port which then sticks the data in a shared memory space for a GUI app to pick up and display on the screen.

    My job was to port this existing platform over to the new processor, I think its a AMD Geode... same processor family before but has double the RAM (256MB now).

    Problem is, the shared memory doesn't work on the new processor. Everything else is exactly the same as before! I tried putting dummy data from the kernel module in the shared memory space, but the GUI application can only read 0's from the shared memory space.

    its quite a complicated problem to explain, I can post code if need be and provide more information, but I was wondering if anyone would know why shared memory space could fail when the difference between the new and old processor is just bigger RAM.

    I don't know enough about linux to even begin trying to fix it! Apologies if I've done a terrible job of explaining the problem! If anyone can even suggest something that would be great! The person who write the existing code isn't available so i'm trying to understand it! I'm not sure if you have to reserve a particular area of memory if you want to share it!

  2. #2
    Linux User
    Join Date
    Nov 2008
    Location
    Tokyo, Japan
    Posts
    260
    Just checking, but I assume they updated the Linux kernel for the AMD processor?
    What I mean is, did they either (1) re-compile the kernel with shared memory options turned on in the kernel configuration file, or (2) re-install the operating system using the AMD binaries from RedHat, Debian, or whatever distribution they are using. Just because AMD uses an X86 instruction set doesn't mean the kernel is optimized for that CPU.

    If you have no control over the kernel and it is impossible to use shared memory all together, you may consider using a "local socket", and marshal your data between applications. Marshaling takes time, which is the advantage shared memory has over sockets, but it's just a thought.

  3. #3
    Just Joined!
    Join Date
    Apr 2011
    Location
    India
    Posts
    2
    Quote Originally Posted by gaz250587 View Post
    Hi Guys,

    I'm hoping i've come to the right place and someone can help me here!

    I'm doing some work for a client, they have upgraded the processor in one of their products due to redundancy issues. They were running linux with a custom application that uses a kernel module to gather data from the PCI port which then sticks the data in a shared memory space for a GUI app to pick up and display on the screen.

    My job was to port this existing platform over to the new processor, I think its a AMD Geode... same processor family before but has double the RAM (256MB now).

    Problem is, the shared memory doesn't work on the new processor. Everything else is exactly the same as before! I tried putting dummy data from the kernel module in the shared memory space, but the GUI application can only read 0's from the shared memory space.

    its quite a complicated problem to explain, I can post code if need be and provide more information, but I was wondering if anyone would know why shared memory space could fail when the difference between the new and old processor is just bigger RAM.

    I don't know enough about linux to even begin trying to fix it! Apologies if I've done a terrible job of explaining the problem! If anyone can even suggest something that would be great! The person who write the existing code isn't available so i'm trying to understand it! I'm not sure if you have to reserve a particular area of memory if you want to share it!
    Hey I have a suggestion for you: The RAM size and address will be hardcoded in a header file or in a configuration file corresponding to the hardware in the kernel. So just check it out.

  4. #4
    Just Joined!
    Join Date
    Jul 2011
    Posts
    2
    Hi,

    The old processor was also an AMD. Very similar processor this new one just has more RAM. But even so its a very good point! I don't suppose you know what the kernel config file is called so I can check?

    Everything works as it did before apart from this shared memory problem so a configuration problem sounds likely!

    Is the configuration file or header something that gets used during kernel compilation? or is it something read by the kernel when it starts up?
    Sorry for asking what probably sounds like stupid questions, this is quite new to me! Thanks for your replies

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •