Help porting Linux app - getting Free Memory and Real Memory

Lowell Gilbert freebsd-lists at be-well.ilk.org
Fri Mar 29 14:04:18 UTC 2013


Rod Person <rodperson at rodperson.com> writes:

> On 03/29/13 08:34, Lowell Gilbert wrote:
>> Peter Jeremy <peter at rulingia.com> writes:
>>
>>> On 2013-Mar-29 20:27:27 -0400, Rod Person <rodperson at rodperson.com> wrote:
>>>> Everything is going we except that the program gives warnings that there
>>>> isn't enough free memory on the system to perform certain actions.
>>> That premise sounds suspiciously like the upstream author doesn't
>>> understand how Unix VM works.
>> To be more blunt, these checks may well be useless on Linux.
>> On a quick look, you seem to maintain three ports: idutils, mspdebug,
>> and jogl. I wouldn't expect a free-memory check to be appropriate on any
>> of those.
> Really?  The port in question if graphics/fotoxx. I have no involvement
> in the others. For the latter two, I'm not even sure what they are.

Oops. I apologize; I actually looked for ports maintained by the other
person who responded to you. Very silly mistake on my part.

I don't think a free-memory check is appropriate here, either.

>> In any case, the definition of "free memory" is different between the VM
>> systems in Linux and BSD . Even if the checks do make sense, the FreeBSD
>> implementation would at the minimum have to include all of the pages
>> that are allocated but not mapped.
> Yes I have read this. Fotoxx uses free memory calculation when applying
> effects to images.  It looks at the image size then calculates how much
> memory it needs to apply an effect, such as image sharpening. For
> example, on a 4.5MB jpg file it seems to calculate that 40MB of free
> memory is need to apply sharpening to the image.  40MB doesn't seem like
> a lot of memory to me, but since the application way of figuring free
> memory is Linux specific the warning dialog appear, although it seem to
> have no ill effect on actually applying the sharpening effect.

I would recommend removing the check completely. The upstream author
should do this for the Linux version as well; it really doesn't make
sense in a system that supports virtual memory. If you decide to support
it anyway to make some kind of performance guarantees, you probably
should check against all of user memory; "free" memory is by definition
being underutilized.


More information about the freebsd-hackers mailing list