My AVR has 1024 bytes of SRAM - how much of that can I actually use?

Can I really use all of it? I'm using ino, which uses avr-gcc to compile an Arduino sketch that's being uploaded to a standalone Atmega 168. If I run avr-size, and data+bss=1024, is that OK?

Depends on how many variables, arrays, functions, etc you have.

Is there any way of knowing how much SRAM my program uses? I assumed avr-size would give me the definitive size, but maybe not?

e: I should say I'm just wondering because avr-size says that data+bss is 1004 bytes, but my program is behaving much like when I accidently use too much memory.

There's been a function written, called freemem() maybe? that returns a size. Search the forum for it.
Could also write a big array, back the size down until the software stops crashing.

data+bss does NOT include the stack space used at runtime, which is at least 'some' memory, and possibly a lot of memory depending on how deeply you nest function calls and how many local variables are present in those functions.

Ahhh that would be it! Thanks all!